Пет-проект чат-сервера, предоставляющего HTTP API для работы с чатами и сообщениями пользователя.
sbt docker:publishLocal
docker compose up
Пользователь приложения
- id - уникальный идентификатор пользователя
- username - уникальное имя пользователя
- created_at - время создания
Отдельный чат
- id - уникальный идентификатор чата
- name - уникальное имя чата
- users - список идентификаторов пользователей в чате, отношение многие-ко-многим
- created_at - время создания
Сообщение в чате
- id - уникальный идентификатор сообщения
- author - ссылка на идентификатор отправителя сообщения, отношение многие-к-одному
- text - текст отправленного сообщения
- created_at - время создания
В ответ на любой запрос возвращается или успешный ответ c результатом в поле result
{
"result": "<result will be here>"
}
или HTTP-код ошибки и описание ошибки в JSON-формате
{
"error": "example of error description"
}
Запрос:
curl --request POST \
--url http://localhost:8080/users \
--header 'Content-Type: application/json' \
--data '{"username": "user_1"}'
Ответ: id
созданного пользователя
Запрос:
curl --request GET \
--url http://localhost:8080/users
Ответ: список всех пользователей
Запрос:
curl --request GET \
--url http://localhost:8080/users/<USER_ID_1>
Ответ: сущность пользователя
Количество пользователей в чате не ограничено.
Запрос:
curl --request POST \
--url http://localhost:8080/chats \
--header 'Content-Type: application/json' \
--data '{"name": "chat_1", "users": ["<USER_ID_1>","<USER_ID_2>"]}'
Ответ: id
созданного чата
Запрос:
curl --request GET \
--url http://localhost:8080/chats
Ответ: список чатов
Запрос:
curl --request GET \
--url http://localhost:8080/chats?user=<USER_ID_1>
Ответ: список чатов
Запрос:
curl --request GET \
--url http://localhost:8080/chats/<CHAT_ID_1>
Ответ: сущность чата
Запрос:
curl --request POST \
--url http://localhost:8080/chats/<CHAT_ID_1>/messages \
--header 'Content-Type: application/json' \
--data '{"author": "<USER_ID_1>", "text": "hello, chat!"}'
Ответ: созданное сообщение
Запрос:
curl --request GET \
--url http://localhost:8080/chats/<CHAT_ID_1>/messages
Ответ: список сообщений в чате