Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

121 lines (100 sloc) 2.886 kB
Protokolldokumentation
Als grundlegende Technik kommt HTTP + JSON zum Einsatz.
Wir gehen davon aus, dass Spielernamen eindeutig sind. Weiter Authentifikation
ist nicht nötig, alle haben sich lieb.
Generell gilt, dass Responses auf POSTs immer "success" und "error" in der
Response haben. "success" ist ein Boolean. Sofern er auf false steht, enthält
"error" eine passende Fehlermeldung, die dem Benutzer angezeigt werden sollte.
-------------------------------
Request: GET /CurrentGames
Body: <ignoriert>
Response:
[
{"id":"3984843...",
"participants": [
"Atsutane",
"sECuRE"
],
"name":"foo",
"created":123,
"size":3,
"winner":null,
"wordlist":"default"
},
{"id":"333...",
"participants": [ ],
"name":"Unbenannt 29eaa93",
"created":456,
"size":5,
"winner":null,
"wordlist":"wahl"
}
]
-------------------------------
Request: GET /GetWordlists
Body: <ignoriert>
Response:
[ "wahl", "default" ]
Gibt die verfügbaren Wortlisten zurück.
-------------------------------
Request: POST /RegisterPlayer
Body: {"nickname":"sECuRE"}
Response:
{"success":true,
"error":"",
"token":"939393"}
Das token muss später mitgeschickt werden, wenn der Spieler ein Spiel aufmacht
oder einem Spiel beitritt. Auf diese Weise kann man am Anfang einen Namen
eingeben und es kann geprüft werden, ob es derzeit schon einen Spieler mit
diesem Namen gibt. 24 Stunden nach der letzten Aktivität verfällt das Token.
-------------------------------
Request: POST /CreateGame
Body: {"token":"939393", "size":3, "name":"bar", "wordlist":"wahl"}
Response:
{"success":true,
"error":"",
"id":"3984843...",
"words":[
"Win-Win",
"Return of Investment",
"Blah",
"Management"
]}
Wenn "wordlist" nicht angegeben wurde, wird "default" benutzt.
Die Wörter müssen von links oben nach rechts verteilt werden, z.B. bei einem
3x3 Feld folgendermaßen:
Win-Win | Return of Investment | Blah
Management |
-------------------------------
Request: POST /JoinGame
Body: {"token":"93939393", "id":"398484..."}
Response:
{"success":true,
"error":"",
"size":3,
"words":["foo", "bar"]}
-------------------------------
Request: POST /LeaveGame
Body: {"token":"93939393", "id":"398484..."}
Response:
{"success":true,
"error":""}
-------------------------------
Request: POST /MakeMove
Body: {"token":"93939393", "id":"398484...", "field":7}
Response:
{"success":true,
"error":""}
Die Feldnummer wird ebenfalls von links oben nach rechts durchgezählt, beginnend mit 0.
-------------------------------
Request: POST /CheckWinner
Body: {"token":"93939393", "id":"398484.."}
Response:
{"success":true,
"error":"",
"winner": null
}
Sofern jemand das Spiel gewonnen hat, wird dessen Nickname in "winner" als
String zurückgegeben. Der Client sollte dann das Spiel beenden und nicht mehr
nach dem Gewinner fragen.
-------------------------------
Jump to Line
Something went wrong with that request. Please try again.