No description
- Rust 94.6%
- Dockerfile 5.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| src | ||
| .dockerignore | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| config.yml.example | ||
| docker-compose.yml | ||
| Dockerfile | ||
| items.yml | ||
| questions.yml | ||
| README.md | ||
QuestionAPI
HTTP API на Rust для участия в GameJam.
Конфигурация
Все основные настройки лежат в config.yml. Данные берутся из questions.yml и items.yml.
Endpoints
Базовый префикс: /api
Пользовательские
GET /api/can_start- можно ли начать новую сессию (true/false).POST /api/start- стартует сессию, возвращает UUID-ключ (используется дальше в заголовкеKey).- Тело запроса: строка с шестизначным PIN-кодом
- Ошибки:
400- PIN в неверном формате401- PIN неверный
POST /api/send_answer- принимает ответ пользователя и возвращает результат.- Заголовок:
Key: <uuid> - Тело запроса: строка с ответом
- Ответы:
false- ответ неверныйtrue- если дан верный ответ на последний вопрос
- Заголовок:
GET /api/current_question- возвращает текст текущего вопроса для активной сессии.- Заголовок:
Key: <uuid> - Ошибки:
404- вопросы закончились
- Заголовок:
GET /api/inventory- возвращает текущий инвентарь сессии в формате объектов изitems.yml.- Заголовок:
Key: <uuid>
- Заголовок:
Админские
Базовый префикс: /api/admin
Все админские endpoint'ы требуют заголовок:
Authorization: Bearer <admin_token>
POST /api/admin/reset_session- сбрасывает сессию и текущий индекс вопроса, генерирует и возвращает новый шестизначный PIN-код для/api/start.POST /api/admin/inventory/add- добавляет предмет в инвентарь текущей сессии по id изitems.yml.- Тело запроса: строка с одним числом (id)
GET /api/admin/questions- возвращает полный список вопросов и ответов.GET /api/admin/current_question- возвращает индекс текущего вопроса.