DB: MySQL и S3 Framework: NestJS ORM: TypeORM
Реализован CRUD для сущностей User, Tags и FeedBack.
- Пароли не хранятся в открытом виде
- Реализована валидация полей на api запросы с кодами ответов и сообщениями об ошибке в теле ответа.
- JWT bearer token
- Модуль AWS для взаимодействия с сервером JS
- Использованы DTO
field | type |
---|---|
id | uuid |
title | string(100) |
status | string(100) |
text | string(30) |
link | string(30) |
date | datetime |
field | type |
---|---|
id | uuid |
string(100) | |
password | string(100) |
name | string(30) |
field | type |
---|---|
id | uuid |
string(100) | |
text | string(100) |
- POST /sign-up
{
"email": "[email protected]",
"password": "example",
"nickname": "nickname"
}
RETURN:
{
"id": 1
"email": "[email protected]",
"password": "123e4567-e89b-12d3-a456-426614174000",
"nickname": "nickname"
}
- POST /login
{
"email": "[email protected]",
"password": "example"
}
RETURN:
{
"id": 1
"email": "[email protected]",
"password": "123e4567-e89b-12d3-a456-426614174000",
"nickname": "nickname"
}
-
GET /users
HEADER:
Authorization: Bearer {token}
RETURN:
[
{
"id": 1
"email": "[email protected]",
"password": "123e4567-e89b-12d3-a456-426614174000",
"nickname": "nickname"
},
{
"id": 2
"email": "[email protected]",
"password": "123e4567-e89b-12d3-a456-426614174000",
"nickname": "nickname"
}
]
-
PATCH /reset
HEADER:
Authorization: Bearer {token}
{
"email": "[email protected]",
"password": "example"
}
RETURN :
{
"id": 2
"email": "[email protected]",
"password": "123e4567-e89b-12d3-a456-426614174000",
"nickname": "nickname"
}
- POST /news
{
"title": "example",
"description": "example",
"status": "Publish",
"text": "text text"
}
file: png/jpeg/jpg
RETURN :
{
"id": 1
"title": "example",
"description": "example",
"status": "Publish",
"text": "text text"
}
- GET /get
RETURN :
[
{
"id": 1,
"title": "example",
"description": "example",
"status": "Publish",
"text": "text text"
},
{
"id": 2,
"title": "example",
"description": "example",
"status": "Publish",
"text": "text text"
}
]
- PUT /update
{
"id": 1,
"title": "example",
"description": "example",
"status": "Publish",
"text": "text text"
}
file: png/jpeg/jpg
RETURN :
{
"id": 1,
"title": "example",
"description": "example",
"status": "Publish",
"text": "text text"
}
file: png/jpeg/jpg
- DELETE /tag/{id}
RETURN :
{
"post": "Deleted",
}
file: png/jpeg/jpg
-
POST /user/tag
HEADER:
Authorization: Bearer {token}
{
"tags": [1, 2]
}