/CineSamuraiAPI-v2

Backend side for CineSamurai app, made with Node.js

Primary LanguageJavaScript

CineSamuraiAPI-v2 ✔️

Bem-vindo ao CineSamuraiAPI versão 2! Uma nova versão para a API que alimenta o site CineSamurai, com operações básicas de CRUD para os recursos de usuários, autenticação, filmes e salas.

Tabela de Conteúdo

Instruções para Rodar o Projeto

Siga os passos abaixo para executar a API localmente em seu ambiente de desenvolvimento:

  1. Clone o Repositório: Clone o repositório para o seu ambiente local:

    git clone https://github.com/samuelkutz/CineSamuraiAPI-v2
  2. Instale as Dependências: Navegue até o diretório do projeto e instale as dependências usando npm:

    cd CineSamuraiAPI-v2
    npm install
  3. Configure o Arquivo .env:

    Certifique-se de configurar o arquivo .env na raiz do projeto com as variáveis de ambiente necessárias também, elas devem seguir esse estilo:

       PORT="PORTA QUE DESEJA HOSPEDAR A API"
       DATABASE_URI="URI DO BANCO DE DADOS MONGODB"
       SECRET_JWT="SEGREDO DOS TOKEND JWT"
  4. Inicie o Servidor: Inicie o servidor da API executando o seguinte comando:

    npm start

    O servidor será iniciado na porta definida em seu arquivo .env (por padrão, na porta 3000).

Rotas

  • /auth - Rota para autenticação de usuários.

    • POST /login - Rota para fazer login.
      //exemplo de body
      {
          "email": "seu_email@example.com",
          "senha": "sua_senha"
      }
  • /usuarios - Rota para gerenciamento de usuários.

    • POST / - Cria um novo usuário.

      //exemplo de body
      {
          "nome": "Nome do Usuário",
          "email": "email@example.com",
          "cpf": "12345678900",
          "senha": "senha_segura",
          "telefone": "123-456-7890"
      }
    • GET / - Retorna a lista de todos os usuários.

    • GET /:id - Retorna um usuário específico com base em seu ID.

    • PATCH /:id - Atualiza um usuário específico com base em seu ID.

      //exemplo de body
      {
          "nome": "Novo Nome do Usuário",
          "email": "novo_email@example.com",
          "cpf": "98765432100",
          "senha": "nova_senha_segura",
          "telefone": "987-654-3210"
      }
    • DELETE /:id - Exclui um usuário específico com base em seu ID.

  • /filmes - Rota para gerenciamento de filmes.

    • POST / - Cria um novo filme.

      //exemplo de body
      {
          "nome": "Nome do Filme",
          "sinopse": "Sinopse do Filme",
          "url_imagem_capa": "URL da Imagem de Capa",
          "linguagem_original": "Linguagem Original",
          "classificacao_indicativa": "12",
          "duracao": "Duração do Filme"
      }
    • GET / - Retorna a lista de todos os filmes.

    • GET /:id - Retorna um filme específico com base em seu ID.

    • PATCH /:id - Atualiza um filme específico com base em seu ID.

      //exemplo de body
      {
          "nome": "Novo Nome do Filme",
          "sinopse": "Nova Sinopse do Filme",
          "url_imagem_capa": "Nova URL da Imagem de Capa",
          "linguagem_original": "Nova Linguagem Original",
          "classificacao_indicativa": "Livre",
          "duracao": "Nova Duração do Filme"
      }
    • DELETE /:id - Exclui um filme específico com base em seu ID.

  • /salas - Rota para gerenciamento de salas.

    • POST / - Cria uma nova sala.

      //exemplo de body
      {
          "nome": "Nome da Sala",
          "poltronas": [Array de Poltronas] 
      }

      OBS: as Poltronas devem seguir esse esquema

    • GET / - Retorna a lista de todas as salas.

    • GET /:id - Retorna uma sala específica com base em seu ID.

    • PATCH /:id - Atualiza uma sala específica com base em seu ID.

      //exemplo de body
      {
          "nome": "Novo Nome da Sala",
          "poltronas": [Novo Array de Poltronas] 
      }

      OBS: as Poltronas devem seguir esse esquema

    • DELETE /:id - Exclui uma sala específica com base em seu ID.

Autenticação

Para acessar as rotas que exigem autenticação, você deve fornecer um token de autenticação válido no cabeçalho da solicitação. Recomenda-se usar o endpoint /auth/login para obter um token de autenticação válido.

Exemplo de Uso

Aqui está um exemplo de como fazer uma solicitação usando curl:

# Realiza o login para obter um token de autenticação
curl -X POST http://localhost:3000/auth/login -d "usuario=seu_usuario&senha=sua_senha"

# Lista todos os filmes
curl http://localhost:3000/filmes

# Obtém informações de um filme específico
curl http://localhost:3000/filmes/1