Move the swagger yml to root

This commit is contained in:
Marc Di Luzio 2020-06-12 17:22:55 +01:00
parent 6342d9dc4d
commit 30f8d666c3

232
swagger.yml Normal file
View file

@ -0,0 +1,232 @@
swagger: "2.0"
info:
description: "Rove is an asychronous nomadic game about exploring a planet as part of a loose community"
version: "0.1"
title: "Rove Server"
host: "api.rove-game.com"
basePath: "/"
tags:
- name: "server"
description: "Interactions with the server itself"
- name: "accounts"
description: "Access to accounts"
- name: "rove"
description: "Operations for the game"
schemes:
- "http"
consumes:
- application/json
produces:
- application/json
paths:
/status:
get:
tags:
- "server"
summary: "Server status"
description: "Responds with various details about the current server status"
operationId: "Status"
responses:
"200":
description: "Server is active"
schema:
$ref: '#/definitions/status'
/register:
post:
tags:
- "accounts"
summary: "Register an account"
description: "Tries to register an account with the given name"
operationId: "Register"
parameters:
- in: body
name: name
schema:
$ref: '#/definitions/register-data'
responses:
"200":
description: "Successfully attempted to create account, check success value in body"
schema:
$ref: '#/definitions/register-response'
/{account}/commands:
post:
tags:
- rove
summary: Send commands to rover
description: "Sending commands to this endpoint will queue them to be executed during the following ticks, in the order sent"
operationId: "Commands"
parameters:
- in: path
name: account
required: true
type: string
- in: body
name: commands
schema:
$ref: '#/definitions/commands-data'
responses:
"200":
description: "Recieved commands, check success value in body"
schema:
$ref: '#/definitions/commands-response'
/{account}/radar:
get:
tags:
- rove
summary: Get radar information
description: "Gets the radar output for the given rover"
operationId: "Radar"
parameters:
- in: path
name: account
required: true
type: string
responses:
"200":
description: "Recieved request, check success value in body"
schema:
$ref: '#/definitions/radar-response'
/{account}/rover:
get:
tags:
- rove
summary: Get rover information
description: "Gets information for the account's rover"
operationId: "Rover"
parameters:
- in: path
name: account
required: true
type: string
responses:
"200":
description: "Recieved request, check success value in body"
schema:
$ref: '#/definitions/rover-response'
definitions:
status:
properties:
ready:
type: boolean
example: true
version:
type: string
example: "v0.12-1-g7d1a2d7"
tick:
type: integer
example: 5
nexttick:
type: string
example: "15:30:00"
register-data:
properties:
name:
type: string
example: "myname"
required:
- name
register-response:
properties:
success:
type: boolean
example: false
error:
type: string
example: "account with name already existed"
command:
properties:
command:
type: string
example: move
bearing:
type: string
example: NE
duration:
type: integer
example: 5
commands-data:
properties:
commands:
type: array
items:
type: object
properties:
schema:
$ref: '#/definitions/command'
error:
type: string
example: "account with name already existed"
commands-response:
properties:
success:
type: boolean
example: false
error:
type: string
example: "invalid bearing 'SN'"
radar-response:
properties:
success:
type: boolean
example: false
error:
type: string
example: "unknown account"
range:
type: integer
example: 5
tiles:
type: array
items:
type: integer
vector:
properties:
'x':
type: integer
example: 1
'y':
type: integer
example: 2
rover-attributes:
properties:
speed:
type: integer
example: 1
range:
type: integer
example: 5
name:
type: string
example: rover-one
position:
type: object
properties:
schema:
$ref: '#/definitions/vector'
rover-response:
properties:
success:
type: boolean
example: false
error:
type: string
example: "unknown account"
attributes:
type: object
properties:
schema:
$ref: '#/definitions/rover-attributes'