Skip to content

Blogs API é uma API REST de um sistema de blog onde é possível se registrar, fazer login, fazer o CRUD de um post e definir categorias que serão usadas nos posts. Esta API faz uso do JWT para gerenciamento de sessão. Feito utilizando a arquitetura MSC e coberto por testes de integração.

Notifications You must be signed in to change notification settings

matheusg18/blogs-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blogs API

Contexto

Blogs API é uma API REST de um sistema de blog onde é possível se registrar, fazer login, fazer o CRUD de um post e definir categorias que serão usadas nos posts. Esta API faz uso do JWT para gerenciamento de sessão.

Feito utilizando a arquitetura MSC e coberto por testes de integração.

Tecnologias Usadas

Back-End:

NodeJS, Express, Joi, Sequelize, JWT

Banco de dados:

MySQL

Testes:

Mocha, Chai

Variáveis de ambiente

  • HOSTNAME=nome do host mysql
  • MYSQL_USER=nome do usuário mysql
  • MYSQL_PASSWORD=senha do mysql
  • MYSQL_SCHEMA=blogs_api
  • MYSQL_SCHEMA_TEST=blogs_api_test
  • JWT_SECRET=segredo do JWT

Executando a Aplicação

  1. Instale as dependências

    npm install
  2. Inicie o servidor http

    npm start

Executando os testes

  1. Instale as dependências

    npm install
  2. Rode o comando que executa os testes

    npm test
  3. *Para testar um arquivo específico use a variável de ambiente NAME

    NAME=user npm test

Endpoints

Realizar cadastro

  POST /user

Exemplo de body:

{
  "displayName": "Lewis Hamilton",
  "email": "lewishaamilton@gmail.com",
  "password": "123456",
  "image": "https://upload.wikimedia.org/wikipedia/commons/1/18/Lewis_Hamilton_2016_Malaysia_2.jpg"
}

Fazer login

  POST /login

Exemplo de body:

{
  "email": "lewishaamilton@gmail.com",
  "password": "123456"
}

Os endpoints abaixo precisam que o token gerado ao fazer login ou ao se registrar seja passado no header Authorization.

Listar os usuários cadastrados

  GET /user

Listar um usuário pelo seu id

  GET /user/{id}

Deletar o seu próprio usuário

  DELETE /user/me

Registrar uma nova categoria

  POST /categories

Exemplo de body:

{
  "name": "Comunicação"
}

Listar as categorias cadastrados

  GET /categories

Criar um post

  POST /post

Exemplo de body:

{
  "title": "Hollow Knight",
  "content": "Best metroidvania game ever made.",
  "categoryIds": [1, 2]
}

Listar todos os posts

  GET /post

Listar um post pelo seu id

  GET /post/{id}

Pesquisar por posts em que o title ou content for igual ao searchTerm

  GET /post/search?q={searchTerm}

Atualizar um post específico

  PUT /post/{id}

Exemplo de body:

{
  "title": "Hollow Knight",
  "content": "Best metroidvania game ever made."
}

Observação: apenas o autor do post pode alterá-lo e não é possível mudar as categoryIds.

Deletar um post específico

  DELETE /post/{id}

Observação: apenas o autor do post pode deletá-lo.

About

Blogs API é uma API REST de um sistema de blog onde é possível se registrar, fazer login, fazer o CRUD de um post e definir categorias que serão usadas nos posts. Esta API faz uso do JWT para gerenciamento de sessão. Feito utilizando a arquitetura MSC e coberto por testes de integração.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published