Сервер аукциона. Документация по API находится в swagger.yaml
Пример конфигурации сервера находится в ./cli/auction/.auction.example.yaml
, назначение полей описано в коментариях конфига.
curl -X POST \
http://back.auction.prod.ncsd.ru/login \
-F username=root \
-F password=<ROOT_PASSWORD>
ROOT_PASSWORD
- можно узнать в списке переменных окружения в prod среде в rancher, переменная называется AUCTION_ROOT_PASSWORD
.
В результате выполнения получим token.
curl -X POST \
http://back.auction.prod.ncsd.ru/users \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
"username": "username",
"object_type": "trip",
"password": "password"
}'
TOKEN
- token полученый на первом шаге.
В результате выполнения получим информацию о созданном пользователе.
curl -X PUT \
http://back.auction.prod.ncsd.ru/users/<USER_ID>/groups/<GROUP_KEY> \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: application/json'
USER_ID
- id пользователя полученый на втором шаге
GROUP_KEY
- ключ группы (например nc_trip), можно посмотреть в таблице users_groups бд auction
TOKEN
- token полученый на первом шаге.
В результате выполнения получим код 204.
Обмен данными между клиентом и сервером происходит в формате json
. Клиент
отправляет на сервер команды и в ответ получает событие с результатом
или с ошибкой. Так же клиенту могут приходить сообщения от сервера без отправки
команды с клиента, например если на сервере произошли новые события.
Пример команды:
{
"type": "command.place.bet",
"payload": {
"lot_id": 101,
"value": 15500
}
}
type
- тип отправляемой командыpayload
- данные необходимые для выполнений команды
Запрос:
Получить список лотов
{
"type": "command.get.lots"
}
Ответ:
{
"type": "event.get.lots.success",
"payload": []
}
Получить подробную информацию о лоте
Запрос:
{
"type": "command.get.lot",
"payload": {
"lot_id": 101
}
}
Ответ:
{
"type": "event.get.lot.success",
"payload": {
}
}
Сделать ставку на лот
Запрос:
{
"type": "command.place.bet",
"payload": {
"lot_id": 101,
"value": 15500
}
}
Ответ:
{
"type": "event.place.bet.success",
}
Отменить последнию сделанную ставку на лот
Запрос:
{
"type": "command.cancel.bet",
"payload": {
"lot_id": 101
}
}
Ответ:
{
"type": "event.cancel.bet.success",
}
Подтвердить сделанную ставку
Запрос:
{
"type": "command.confirm.bet",
"payload": {
"lot_id": 101
}
}
Добавлен новый лот
{
"type": "event.lot.added",
"payload": {
}
}
Лот изменился
{
"type": "event.lot.changed",
"payload": {
}
}