Server APIs - StephenE/DevoLAN GitHub Wiki
HTTP Status Codes
The following HTTP status codes are used by the API to report errors
- 400 BadRequest: The operation is impossible due to out of range arguments (e.g. tried to attack with more troops than you have)
- 401 Unauthorized: The logged in user is not allowed to take that action (e.g. not session owner)
- 402 PaymentRequired: The operation is impossible due to physical constraints (e.g. two regions aren't connected)
- 403 Forbidden: Not logged in
- 404 NotFound: Invalid guid provided (e.g. a bad session id)
- 405 MethodNotAllowed: Didn't use the correct HTTP verb (e.g. POST instead of GET)
- 406 NotAcceptable: The operation is impossible due to ownership constraints (e.g. trying to attack a region you own)
- 409 Conflict: Concurrent action detected (e.g. issued two conflicting attack requests at the same time)
- 417 ExpectationFailed: Trying to perform an operation, but the session is not in the required round state
/api/Account
Auto-generated by Visual Studio. Deals with authentication!
POST /api/Account/Register
Allows creating a new account. Once you've got an account (which doesn't need any activation or email verification), you can get a OAUTH token to authentication your calls to other apis
/Token
Requires the login details over HTTPS as x-www-form-urlencoded, which looks like this:
`grant_type=password&username="Stephen"&password="Devolan!"
It gives you back a token which you can then pass back in calls to other APIs in the Authorization header.
/api/Game
High level management of a game.
- Starting a game
- (Stretch) Configuring the options
- Asking to join
- Granting permission to join
- Marking self as ready for the next round
GET /api/Game/Sessions
Returns an array of all existing sessions (See ISession)
POST /api/Game/StartNewGame
Requires no arguments, creates a new session owned by the authenticated user. Returns an ISession with the Guid of the new session
POST /api/Game/JoinGame?sessionId=guid-as-string
Adds the authenticated user to the specified session. Returns a 404 error if the session doesn't exist. If the user is already in the session, nothing happens.
GET /api/Game/Players?sessionId=guid-as-string
Returns a list of IPlayer present in the specified session. Returns a 404 error if the session doesn't exist.
/api/World
Information feeds about the game world and what's happened in a specified round
- World layout (which regions connect to which)
- Reinforcements made
- Combat & Outcomes
- Redeployment
/api/Region
A region is always owned by a player. The methods here allow you to query & interact with a specific region in the game world.
- Get owner details
- Deploy reinforcements
- Order attack
- Get planned attacks
- Cancel attack
- Redeploy troops
/api/Nation
Each player runs a nation, so anything that applies to the entire player will go in here.
- Get Available Reinforcements
- Get Cards
- Use Cards
- Get Mission