Skip to content

siberianbearofficial/chess-api

Repository files navigation

Chess API

Healthiness probe: /healtz
Readiness probe: /readyz
Publication readiness probe: /publication/ready
Version: /version
Prefix: /api/v1
Authorization: Bearer {token} - возвращается при авторизации

Boards

Schemas

BoardRead

{
  "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"
    }
  }
}

BoardCreate

{
  "owner": "some-uuid",
  "mode": "online",
  "privacy": "private"
}

Endpoints

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."
}

Invitations

Schemas

InvitationCreate

{
  "board": "some-uuid"
}

Endpoints

POST /invitations - создает пригласительный код

Request: InvitationCreate

Response:

{
  "data": "some-six-digit-code",
  "detail": "Invitation was added."
}

Moves

Schemas

MoveRead

{
  "uuid": "some-uuid",
  "board": "some-uuid",
  "actor": "owner",  // "owner" | "invited"
  "created_at": "some-datetime",
  "src": "a1",
  "dst": "a3",
  "figure": "queen"
}

MoveCreate

{
  "board": "some-uuid",
  "actor": "invited",
  "src": "a1",
  "dst": "a3"
}

Endpoints

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."
}

About

API to play chess with any user over the world

Resources

Stars

0 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages