welbex-job-interview/docs/API.MD

83 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Backend содержит несколько API-эндпоинтов. Все они начинаются на /api/v1.
Все эндпоинты для изменения или добавления чего-либо требуют JWT в Cookies под названием "jwt".
Запросы на любой POST эндпоинт требуют Content-Type: application/json.
# User
## POST /api/v1/user/create
Требуемые параметры:
* ``username: string``
* ``password: string``
Возвращаемые параметры:
* Успех: 200 с редиректом на /, в Cookie кладётся JWT под названием "jwt".
* Пользователь уже существует: 409 Such user already exists.
## POST /api/v1/user/login
Требуемые параметры:
* ``username: string``
* ``password: string``
Возвращаемые параметры:
* Успех: 200 с редиректом на /, в Cookie кладётся JWT под названием "jwt".
* Пользователь не существует: 404 User does not exist.
* Неверный пароль: 401 Incorrect password
## GET /api/v1/user/posts/:userId
Требуемые параметры:
* ``userId: number`` (параметр в url)
Возвращаемые параметры:
* Успех: 200 с JSON-массивом, содержащим все посты пользователя, отсортированные от самого нового до самого последнего.
* Пользователь не существует: 404 User does not exist.
## GET /api/v1/user/all
Требуемые параметры:
Возвращаемые параметры:
* Успех: 200 с JSON-массивом, содержащим информацию о всех зарегистрированных пользователях
## GET /api/v1/user/by-id/:userId
Требуемые параметры:
* ``userId: number`` (параметр в url)
Возвращаемые параметры:
* Успех: 200 с JSON-объектом вида {username: "имя пользователя"}
# Post
## POST /api/v1/post/create
Требуемые параметры:
* ``message: string``
* ``file: file`` (можно выбрать только либо файл, либо сообщение)
Возвращаемые параметры:
* Успех: 200 Ok
* Заргужено не медиа: 400 Unknown mime type
## PUT /api/v1/post/update/:postId
Требуемые параметры:
* ``postId: number`` (параметр в url)
* ``message: string``
* ``file: file`` (можно выбрать только либо файл, либо сообщение)
Возвращаемые параметры:
* Успех: 200 Ok
* Заргужено не медиа: 400 Unknown mime type
* Поста не найдено: 404 Post not found.
## DELETE /api/v1/post/:postId
Требуемые параметры:
* ``postId: number`` (параметр в url)
Возвращаемые параметры:
* Успех: 200 Ok
* Поста не найдено: 404 Post not found.
## GET /api/v1/post/:postId
Требуемые параметры:
* ``postId: number`` (параметр в url)
Возвращаемые параметры:
* Успех: 200 с JSON-объектом, описывающим пост
* Поста не найдено: 404 Post not found.