X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=api.text;h=41e365c65e3df41a6151cda5d057e956c1bb52f3;hb=7c9ed4f7f7428da79eaa06376991b4ed0965fa47;hp=91a390cb927e705a6aa7a85aeca8fb05b9189d2a;hpb=7a14f1f7d3afb0bd58c817996ec1ec2144e13d54;p=empires-api diff --git a/api.text b/api.text index 91a390c..41e365c 100644 --- a/api.text +++ b/api.text @@ -1,5 +1,63 @@ -Gameplay API endpoints (within a current game) -============================================== +Empires Game Protocol +===================== +Version: 0.3 + +For a specific game the following API endpoints are defined. +(Note: Only the trailing portion of the API URI is provided here. + The preceding portions of the path must be determined externally.) + +/events + + This is a server-sent events stream that allows the server to push + game-related events to clients. When a client connects to this API + endpoint the server will return a header that includes: + + Content-type: text/event-stream + Connection: keep-alive + Cache-Control: no-cache + + and will keep the connection open to return events. + + The following event types will be returned by the server: + + TYPE: players + + WHEN: When a client first connects + + PURPOSE: Describes all players in the game already + + EXAMPLE: + + event: players + data: [{"id":1,"name":"Carl"},{"id":2,"name":"Kevin"}] + + TYPE: player-join + + WHEN: When a player joins the game + + EXAMPLE: + + event: player-join + data: {"id":3,"name":"Richard"} + + TYPE: player-leave + + WHEN: When a player leaves the game + + EXAMPLE: + + event: player-leave + data: {"id":3} + + TYPE: capture + + WHEN: When one player captures another + + EXAMPLE: + + event: capture + data: {"captor": 2, "captee": 1} + /register Method: POST @@ -33,7 +91,7 @@ Gameplay API endpoints (within a current game) Behavior: Indicate that empire ID1 has now captured ID2 -/escape/ +/liberate/ Method: POST @@ -54,12 +112,12 @@ Gameplay API endpoints (within a current game) Behavior: Shows which empires have been captured by other empires - Example data [ { "id": 1, "captured": [] }, - { "id": 2, "captured": [1] }, - { "id": 3, "captured": [4, 5, 6] }, - { "id": 4, "captured": [2] }, - { "id": 5, "captured": [] }, - { "id": 6, "captured": [] } ] + Example data [ { "id": 1, "captures": [] }, + { "id": 2, "captures": [1] }, + { "id": 3, "captures": [4, 5, 6] }, + { "id": 4, "captures": [2] }, + { "id": 5, "captures": [] }, + { "id": 6, "captures": [] } ] /players @@ -70,14 +128,8 @@ Gameplay API endpoints (within a current game) Example data: [ { id: 1, name: "Carl" }, { id: 2, name: "Kevin" } ] -/players/ - - Method: GET - - Behavior: Get a single player by its id - Server ====== -There's a sample server available at: https://families.cworth.org/ +There's a sample server available at: https://families.cworth.org/api/ We plan to move this to https://empires.cworth.org at some point.