Healthiness probe: /healtz
Readiness probe: /readyz
Publication readiness probe: /publication/ready
Version: /version
Prefix: /api/v1
Authorization: Bearer {token} - возвращается при авторизации
{
"uuid": "some-uuid",
"owner": "some-uuid",
"mode": "online",
"privacy": "private",
"invited": ["some-uuid", "some-uuid", ...],
"white": "some-uuid",
"black": "some-uuid",
"created_at": "some-datetime",
"status": "progress", // "created" | "progress" | "check" | "checkmate" | "stalemate"
"state": {
"a1": {
"figure": "queen",
"actor": "white"
},
"e5": {
"figure": "king",
"actor": "black"
}
}
}{
"owner": "some-uuid",
"mode": "online",
"privacy": "private"
}POST /boards - создает доску
Request: BoardCreate
Response:
{
"data": "some-uuid",
"detail": "Board was added."
}POST /boards/some-uuid/invited - добавляет второго игрока к доске
Request:
{
"invitation": "some-six-digit-code",
"invited": "some-uuid"
}Response:
{
"data": "some-uuid",
"detail": "Invited user was added to the board."
}GET /boards - возвращает доски
Query params:
owner- указать, чтобы получить доски конкретного пользователяinvited- указать, получить доски, где пользователь является вторым игроком
Request: Empty
Response:
{
"data": [
BoardRead,
BoardRead,
...
],
"detail": "Boards were selected."
}{
"board": "some-uuid"
}POST /invitations - создает пригласительный код
Request: InvitationCreate
Response:
{
"data": "some-six-digit-code",
"detail": "Invitation was added."
}{
"uuid": "some-uuid",
"board": "some-uuid",
"actor": "owner", // "owner" | "invited"
"created_at": "some-datetime",
"src": "a1",
"dst": "a3",
"figure": "queen"
}{
"board": "some-uuid",
"actor": "invited",
"src": "a1",
"dst": "a3"
}POST /moves - создает ход
Request: MoveCreate
Response:
{
"data": "some-uuid",
"detail": "Move was added."
}GET /moves - возвращает ходы
Query params:
board- указать, чтобы получить ходы на конкретной доскеactor- указать, чтобы получить ходы владельца или приглашенного игрока
Request: Empty
Response:
{
"data": [
MoveRead,
MoveRead,
...
],
"detail": "Moves were selected."
}DELETE /moves/last - отменяет последний ход
Request:
{
"actor": "owner" // "owner" | "invited"
}Response:
{
"data": "some-uuid",
"detail": "Move was deleted."
}