SashaLevkovich / middle.SandwormRampage.praktikum.yandex

https://middle-sandworm-rampage-praktikum-yandex-client.vercel.app
0 stars 0 forks source link

Добавить API для лидерборда. #58

Open SashaLevkovich opened 1 week ago

SashaLevkovich commented 1 week ago

Пояснение:

https://ya-praktikum.tech/api/v2/swagger/#/Leaderboard

Каждый юзер после игры засылает свой результат на бекенд в ручку 

/api/v2/leaderboard

Формат такой:

{ 
  "data": {  
    "myField": "lol",
    "otherField": 23
  },   
  "ratingFieldName": "otherField", 
}


Где data - любые данные по игре, а ratingFieldName - поле для сравнения результата игры. Если прислать значение меньше, чем предыдущее, ничего не произойдет, а если большее - данные перезапишутся. Чтобы получить лидерборд, нужно отправить пост запрос в ручку 

/api/v2/leaderboard/all

Формат:

{   
  "ratingFieldName": "otherField",
   "cursor": 0,
   "limit": 10
 }

Где ratingFieldName - поле, по которому будет происходить сортировка возвращаемого результата cursor - курсор для пагинации limit - сколько максимум элементов вернуть Но так как API общее для всех команд, нужно чтобы у каждой команды был уникальный ratingFieldName , иначе рекорды будут общие для разных игр)

  1. Начать использовать api лидерборда в проекте
  2. Подключить api к сделанных ранее компонентах

Ожидание:

Подключено api лидерборда, рекорд пользователя записывается в таблицу по окончанию игры, так же юзер может посмотреть таблицу лидеров

linear[bot] commented 1 week ago

SAN-39 Добавить API для лидерборда.