Skip to content

Uma API CRUD para um site de blogs, ultizando Express, Node.js e Sequelize

Notifications You must be signed in to change notification settings

natanielsantos159/blogs-api

Repository files navigation

Blogs API📰

O Blogs API é um CRUD feito pra um site de notícias! 📰

Sumário


Objetivo

Nesse projeto, foi construído um back-end usando ORM com o pacote sequelize do npm, praticando as seguintes habilidades:

  • Criar e associar tabelas usando models do sequelize
  • Construir endpoints para consumir os models que criar
  • Fazer um CRUD com o ORM

Stack utilizada

Node, Express, Sequelize, MySQL

Variáveis de Ambiente

Para rodar esse projeto na sua máquina, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env

HOSTNAME MYSQL_USER MYSQL_PASSWORD JWT_SECRET

Rodando localmente

Clone o projeto

  git clone git@github.com:natanielsantos159/blogs-api.git

Entre no diretório do projeto

  cd blogs-api

Instale as dependências

  npm install

Documentação da API

Posta um novo post

  POST /post
Parâmetro Tipo Descrição
title string Obrigatório. O título do post
content string Obrigatório. O conteúdo do post
categoryIds array Obrigatório. Um array de IDs de categorias

Obter todos os posts

  GET /post
  • Esse endpoint deve listar todas os posts e retorná-los na seguinte estrutura:
[
  {
    "id": 1,
    "title": "Post do Ano",
    "content": "Melhor post do ano",
    "userId": 1,
    "published": "2011-08-01T19:58:00.000Z",
    "updated": "2011-08-01T19:58:51.000Z",
    "user": {
      "id": 1,
      "displayName": "Lewis Hamilton",
      "email": "lewishamilton@gmail.com",
      "image": "https://upload.wikimedia.org/wikipedia/commons/1/18/Lewis_Hamilton_2017_Malaysia.jpg"
    },
    "categories": [
      {
        "id": 1,
        "name": "Inovação"
      }
    ]
  }
]

Obter post pelo id

  GET /post/:id
  • Retorna um post com o id especificado. O retorno terá o seguinte formato:
  {
  "id": 1,
  "title": "Post do Ano",
  "content": "Melhor post do ano",
  "userId": 1,
  "published": "2011-08-01T19:58:00.000Z",
  "updated": "2011-08-01T19:58:51.000Z",
  "user": {
    "id": 1,
    "displayName": "Lewis Hamilton",
    "email": "lewishamilton@gmail.com",
    "image": "https://upload.wikimedia.org/wikipedia/commons/1/18/Lewis_Hamilton_2016_Malaysia_2.jpg"
  },
  "categories": [
    {
      "id": 1,
      "name": "Inovação"
    }
  ]
}

Editar post pelo id

  PUT /post/:id
Parâmetro Tipo Descrição
title string Opcional. Novo titulo do post
content string Opcional. Novo conteúdo do post

Cadastra um usuário

  POST /user
Parâmetro Tipo Descrição
displayName string Obrigatório. O nome do usuário
email string Obrigatório. O email do usuário
password string Obrigatório. A senha do usuário, no mínimo 6 caracteres
image string Opcional A imagem do perfil

Faz o login do usuário

  POST /login
Parâmetro Tipo Descrição
email string Obrigatório. O email do usuário
password string Obrigatório. A senha do usuário

Cadastra uma nova categoria

  POST /categories
Parâmetro Tipo Descrição
name string Obrigatório. O nome da categoria

Obter todas as categorias

  GET /categories
  • Esse endpoint deve listar todas as Categorias e retorná-las na seguinte estrutura:
[
  {
    "id": 1,
    "name": "Escola"
  },
  {
    "id": 2,
    "name": "Inovação"
  }
]

Feedback

Se você tiver algum feedback, por favor entre em contato por meio de nathan.santos159@hotmail.com

About

Uma API CRUD para um site de blogs, ultizando Express, Node.js e Sequelize

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published