83 lines
3.4 KiB
Plaintext
83 lines
3.4 KiB
Plaintext
|
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.
|
|||
|
|