Skip to content

Foi desenvolvido uma API e um banco de dados para produção de conteúdo para um blog, onde os endpoints seguem os princípios REST.

Notifications You must be signed in to change notification settings

Gabrielja2/Projeto-Blogs-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bem vindos ao repositório Blogs-API

👨‍💻 O que foi desenvolvido
Aqui você vai encontrar os detalhes de como foi estruturado este projeto e instruções para rodar. Este projeto foi desenvolvido uma API e um banco de dados para a produção de conteúdo para um blog! É uma aplicação em Node.js usando o pacote sequelize para fazer um CRUD de posts.

1. Foi desenvolvido os endpoints que estarão conectados ao banco de dados seguindo os princípios do REST;

2. Para fazer um post é necessário usuário e login, possui relacionamentos,  **relação entre** `user` e `post`; 

3. É necessário utilização das categorias para os posts, trabalhando, assim, a **relação de** `posts` para `categories` e de `categories` para `posts`.

Orientações

🐋 Rodando no Docker vs Localmente

👉 Com Docker

ℹ️ Rode os serviços node e db com o comando docker-compose up -d --build.

  • Lembre-se de parar o mysql se estiver usando localmente na porta padrão (3306), ou adapte, caso queria fazer uso da aplicação em containers;

  • Esses serviços irão inicializar um container chamado blogs_api e outro chamado blogs_api_db;

  • A partir daqui você pode rodar o container blogs_api via CLI ou abri-lo no VS Code;

ℹ️ Use o comando docker exec -it blogs_api bash.

  • Ele te dará acesso ao terminal interativo do container criado pelo compose, que está rodando em segundo plano.

ℹ️ Instale as dependências [Caso existam] com npm install. (Instale dentro do container)


👉 Sem Docker

ℹ️ Instale as dependências [Caso existam] com npm install

  • Dica: Para rodar o projeto desta forma, obrigatoriamente você deve ter o node instalado em seu computador.

Como ter acesso ao projeto e instalar as dependências
1. Entre na pasta do repositório que você acabou de clonar ou fazer o download do arquivo zip:
* `cd pasta-do-repositório`

2. Instale as dependências:
*`npm install`

3. Suba os imagens do servidor node e do banco de do docker-compose com o comando:
*`docker-compose up -d --build

<br />
👀 REST

Status HTTP

Tenha em mente que todas as "respostas" devem respeitar os status do protocolo HTTP com base no que o REST prega.

Alguns exemplos:

  • Requisições que precisam de token mas não o receberam devem retornar um código de status 401;

  • Requisições que não seguem o formato pedido pelo servidor devem retornar um código de status 400;

  • Um problema inesperado no servidor deve retornar um código de status 500;

  • Um acesso ao criar um recurso, no nosso caso usuário ou post, deve retornar um código de status 201.

🎲 Entidades

Formato das entidades

O seu projeto deverá usar o ORM Sequelize para criar e atualizar o seu banco de dados.

Os primeiros requisitos do projeto devem orientar a produção de suas migrations para gerar:

  • Uma tabela chamada users, contendo dados com a seguinte estrutura:

    id display_name email password image
    1 Brett Wiltshire brett@email.com // tem quer ser único 123456 http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png
  • Uma tabela chamada categories, contendo dados com a seguinte estrutura:

    id name
    18 News
  • Uma tabela chamada blog_posts, contendo dados com a seguinte estrutura:

    id title content user_id published updated
    21 Latest updates, August 1st The whole text for the blog post goes here in this key 14 // Chave estrangeira, referenciando o id de users 2011-08-01T19:58:00.000Z 2011-08-01T19:58:51.947Z
  • Uma tabela chamada PostCategories, contendo uma chave primária composta utilizando os dois atributos da estrutura:

    post_id category_id
    50 // Chave primária e estrangeira, referenciando o id de BlogPosts 20 // Chave primária e estrangeira, referenciando o id de Categories

    Os dados acima são fictícios, e estão aqui apenas como exemplo

    Dicas de scripts prontos

    • Deleta o banco de dados:
    "drop": "npx sequelize-cli db:drop"
    • Cria o banco e gera as tabelas:
    "prestart": "npx sequelize-cli db:create && npx sequelize-cli db:migrate"
    • Insere dados/Popula a tabela:
    "seed": "npx sequelize-cli db:seed:all"

About

Foi desenvolvido uma API e um banco de dados para produção de conteúdo para um blog, onde os endpoints seguem os princípios REST.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •