/blogs-api

API para gerenciar a produção de conteúdo de um blog.

Primary LanguageJavaScript

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