Blogs Api 👩🏻💻
〰️ Sobre
Construção de uma API com CRUD para gerenciar a produção de conteúdo para um blog. Foi feito utilizando um banco de dados SQL. A API foi construída utilizando os princípios REST e seguindo a arquitetura MSC (Model, Service, Controller).
Suas principais funcionalidades são:
- Busca, cadastro, login, autenticação e remoção de pessoas usuárias;
- Busca e cadastro de categorias de posts do blog;
- Busca, cadastro, atualização e remoção de posts do blog.
Stacks
- Node JS
- MySQL
- Express
- Json Web Token (JWT)
- Sequelize
- Docker
- Joi
🐳 Rodando com o Docker
Obs: O seu docker-compose precisa estar na versão 1.29 ou superior.
Clone o repositório:
git clone git@github.com:layanenu/blogs-api.git
Entre no diretório car-shop:
cd blogs-api
Instale as dependências do projeto:
npm install
Suba a orquestração de containers:
docker-compose up -d
Esses serviços irão inicializar um container chamado blogs_api
e outro chamado blogs_api_db
REQUISITOS
Neste projeto você vai desenvolver uma API e um banco de dados para a produção de conteúdo para um blog!
Você deverá desenvolver uma aplicação em Node.js usando o pacote sequelize para fazer um CRUD de posts.
Você deverá desenvolver endpoints que estarão conectados ao seu banco de dados seguindo os princípios do REST;
Para fazer um post é necessário usuário e login, portanto será trabalhada a relação entre user e post;
Será necessária a utilização de categorias para os posts, trabalhando, assim, a relação de posts para categories e de categories para posts.
1 - Crie migrations para as tabelas users, categories, blog_posts, posts_categories
2 - Crie o modelo User em src/models/User.js com as propriedades corretas
3 - Sua aplicação deve ter o endpoint POST /login
4 - Sua aplicação deve ter o endpoint POST /user
5 - Sua aplicação deve ter o endpoint GET /user
6 - Sua aplicação deve ter o endpoint GET /user/:id
7 - Crie o modelo Category em src/models/Category.js com as propriedades corretas
8 - Sua aplicação deve ter o endpoint POST /categories
9 - Sua aplicação deve ter o endpoint GET /categories
10 - Crie o modelo BlogPost em src/models/BlogPost.js com as propriedades e associações corretas
11 - Crie o modelo PostCategory em src/models/PostCategory.js com as propriedades e associações corretas
12 - Sua aplicação deve ter o endpoint POST /post
13 - Sua aplicação deve ter o endpoint GET /post
14 - Sua aplicação deve ter o endpoint GET /post/:id
15 - Sua aplicação deve ter o endpoint PUT /post/:id
16 - Sua aplicação deve ter o endpoint DELETE /post/:id
17 - Sua aplicação deve ter o endpoint DELETE /user/me
18 - Sua aplicação deve ter o endpoint GET /post/search?q=:searchTerm