Skip to content

CristianValim/foodexplorerbe

Repository files navigation

Food Explorer Backend

Capa do Projeto

O backend do Food Explorer fornece a API que suporta o sistema de gerenciamento de pratos e usuários para um restaurante. Ele permite operações como criação, atualização, exclusão e recuperação de pratos, bem como gerenciamento de usuários e sessões.

Funcionalidades

Endpoints da API

Sessões

  • POST /sessions
    • Descrição: Cria uma nova sessão para um usuário autenticado.
    • Corpo da Requisição:
      {
        "email": "string",
        "password": "string"
      }
    • Resposta:
      {
        "user": { ... },
        "token": "string"
      }

Usuários

  • POST /users

    • Descrição: Cria um novo usuário.
    • Corpo da Requisição:
      {
        "name": "string",
        "email": "string",
        "password": "string",
        "role": "string" (Não disponível no frontend. Padrão "user")
      }
    • Resposta: {status(201)}
  • PUT /users

    • Descrição: Atualiza as informações do usuário autenticado. (Apenas pelo Backend)
    • Corpo da Requisição:
      {
        "name": "string",
        "email": "string",
        "password": "string",
        "old_password": "string",
        "role": "string"
      }
    • Resposta: {status(201)}

Pratos

  • GET /dishes/index

    • Descrição: Recupera todos os pratos ou pratos que correspondem a um termo de pesquisa.
    • Parâmetros: { "term": "string" }
    • Resposta: [ { ... }, { ... }, ... ]
  • POST /dishes/newdish

    • Descrição: Cria um novo prato.
    • Corpo da Requisição:
      {
        "name": "string",
        "category": "string",
        "price": "number",
        "description": "string",
        "tags": "[\"string\"]"
      }
    • Arquivo: image
    • Resposta:
      {
        "message": "Prato criado com sucesso."
      }
  • PUT /dishes/editdish/:id

    • Descrição: Atualiza um prato existente.
    • Parâmetros: id (ID do prato)
    • Corpo da Requisição:
      {
        "name": "string",
        "category": "string",
        "price": "number",
        "description": "string",
        "tags": "[\"string\"]"
      }
    • Arquivo: image
    • Resposta:
      {
        "message": "Prato atualizado com sucesso."
      }
  • DELETE /dishes/:id

    • Descrição: Remove um prato existente.
    • Parâmetros: id (ID do prato)
    • Resposta:
      {
        "message": "Prato deletado com sucesso."
      }
  • GET /dishes/:id

    • Descrição: Recupera detalhes de um prato específico.
    • Parâmetros: id (ID do prato)
    • Resposta:
      {
        "id": "number",
        "name": "string",
        "category": "string",
        "price": "number",
        "description": "string",
        "tags": "[\"string\"]"
      }

Tecnologias Utilizadas

  • Node.js - Ambiente de execução para JavaScript no servidor.
  • Express.js - Framework para construção de APIs em Node.js.
  • Knex.js - Query Builder para Node.js.
  • SQLite - Banco de dados utilizado para armazenamento.
  • Multer - Middleware para upload de arquivos.
  • bcryptjs - Biblioteca para hashing de senhas.
  • jsonwebtoken - Biblioteca para criação e verificação de tokens JWT.
  • cors - Middleware para habilitar CORS (Cross-Origin Resource Sharing).
  • dotenv - Carregamento de variáveis de ambiente a partir de um arquivo .env.
  • pm2 - Gerenciador de processos para Node.js.
  • swagger-jsdoc - Documentação de API usando Swagger.
  • swagger-ui-express - Interface gráfica para a documentação Swagger.

Documentação da API

A documentação completa da API pode ser acessada diretamente através do Swagger UI. A interface gráfica facilita a exploração dos endpoints e permite a execução de chamadas diretamente pela interface.

Acesso à Documentação

Na documentação do Swagger, você encontrará detalhes sobre todos os endpoints disponíveis, incluindo os parâmetros necessários, corpos de requisição e respostas esperadas. (Em inglês)

Repositórios

Autores

  • Cristian Valim - Desenvolvimento
  • Rocketseat - Design

Licença

Este projeto é licenciado pela Rocketseat.

Links Adicionais

Logo Rocketseat

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published