Skip to content

Server API

Dmitrii Ponomarev edited this page Dec 5, 2022 · 9 revisions

Общая информация

Описание протокола работы сервера.

Для вызова любого метода, кроме регистрации нужно авторизоваться с помощью Basic Auth

Все методы api лежат по пути domain// Актуальная версия - v1.0

Ошибки отправляют соответствующий код ошибки и ответ в виде json

Формат ошибок

Ошибка:

  • timestamp string - время в сложном и страшном формате
  • status int - код ошибки
  • error string - описание ошибки
  • path string - uri по которому произошла ошибка

Список стандартных ошибок:

  • 500 - внутренняя ошибка сервера
  • 401 - неправильный логин или пароль
  • 404 - данные не найдены
  • 400 - неправильный запрос (объект уже существует)
  • 403 - нет прав

Объекты

Coordinate

Точка на карте

  • latitude double - широта
  • longitude double - долгота

Location

Место где применяется карты

  • name string - Название локации
  • isCustom boolean - Нужно ли искать это место по названию на карте
  • coordinates Coordinate[] - список добавленных пользователем локаций

CardWithDistance

Карта с расстоянием до неё

  • id long - id карты
  • distance long - расстояние в метрах

CardList

Список карт

  • nearest CardWithDistance[] - список карт с билжайшим местом применения
  • other long[] - остальные карты

Card

Карта

  • id long - id карты
  • name string - отображаемое название карты
  • barcode string - штрихкод на карте
  • images long[] - список привязанных изображений
  • locations Location[] - список мест применения карты

ReceivedCard

Объект не созданной карты

  • name string - название карты (может быть null)
  • barcode string - штрихкод карты (может быть null)

error

Ошибка

  • timestamp string - время возникновения некотором хитром формате
  • status int - код ответа
  • error string - описание ошибки
  • path string - uri на котором возникла ошибка

Auth

auth/registration

POST

Принимает

Заголовки

  • Login - логин нового пользователя
  • Password - пароль нового пользователя

Результат

{"code":"ACCEPTED", "reason":"OK"} - пользователь зарегестрирован

{"code":"INTERNAL_SERVER_ERROR", "reason":"can't create new user"} - пользователь зарегестрирован

auth/test

GET/POST

Принимает

Ничего

Результат

{"code":"ACCEPTED", "reason":"OK"} - пользователь авторизован

{"code":"UNAUTHORIZED", "reason":"Wrong password"} - неправильный пользователь

auth/change/password

POST

Принимает

заголовок

  • Password string - новый пароль

Результат

{"code":"ACCEPTED", "reason":"OK"} - пароль изменен

{"code":"UNAUTHORIZED", "reason":"Wrong password"} - неправильный пользователь

Cards

cards/getList

GET

Принимает

  • latitude double - широта (опицонально)
  • longitude double = долгота (опицонально)

Возвращает

  • CardList CardList - список с всеми картами и расстояниями до карт с билжайшими точками применения

cards/get

GET

Принимает

Параметры запроса

  • id string - id карты

Возвращает

  • Card Card - объект карты

cards/edit

POST

Принимает

json объект

  • сardEditor CardEditor - объект с новым состоянием карты Если поле не задано, то оно не будет изменено.

Возвращает

  • Card Card - измененная карта

cards/add

POST

Принимает

json объект

  • receivedCard RecivedCard - объект создания карты

Возвращает

  • Card Card - объект созданной карты

Image

image/get

GET

Принимает

  • id long - id изображения

Возвращает

Фалй в формате multipart/form-data

image/upload

POST

Принимает

  • file file - файл изображения
  • cardId long - id карточки к которой добавляется изображение Фалй отправляется в формате multipart/form-data

Возвращает

Данные изображения {"id":"id изображения", "cardId":"id карты к которой оно привязано"}

image/edit

POST

Принимает

  • file file - файл изображения
  • id long - id редактируемового изображение Фалй отправляется в формате multipart/form-data

Возвращает

Данные изображения {"id":"id изображения", "cardId":"id карты к которой оно привязано"}