Esta API fornece acesso a informações sobre filmes, permite a criação e gerenciamento de listas de filmes e inclui funcionalidades de autenticação de usuários.
- Rota:
/popular-movies
- Método:
GET
- Descrição: Retorna uma lista dos filmes mais populares.
- Resposta:
200 OK
: Retorna uma lista de filmes populares.500 Internal Server Error
: Em caso de erro ao buscar filmes.
- Rota:
/movies/:id
- Método:
GET
- Descrição: Retorna os detalhes de um filme específico pelo ID.
- Parâmetros:
id
(obrigatório): O ID do filme.
- Resposta:
200 OK
: Retorna os detalhes do filme.404 Not Found
: Se o filme não for encontrado.500 Internal Server Error
: Em caso de erro ao buscar detalhes do filme.
- Rota:
/search
- Método:
GET
- Descrição: Busca por filmes com base em um termo de consulta.
- Parâmetros:
query
(obrigatório): Termo de busca.
- Resposta:
200 OK
: Retorna uma lista de filmes que correspondem ao termo de busca.500 Internal Server Error
: Em caso de erro ao buscar filmes.
- Rota:
/movie/:id/similar
- Método:
GET
- Descrição: Retorna uma lista de filmes relacionados a um filme específico.
- Parâmetros:
id
(obrigatório): O ID do filme.
- Resposta:
200 OK
: Retorna uma lista de filmes relacionados.404 Not Found
: Se o filme não for encontrado.500 Internal Server Error
: Em caso de erro ao buscar filmes relacionados.
- Rota:
/horror-movies-2024
- Método:
GET
- Descrição: Retorna uma lista de filmes de terror lançados em 2024.
- Resposta:
200 OK
: Retorna uma lista de filmes de terror de 2024.500 Internal Server Error
: Em caso de erro ao buscar filmes de terror.
- Rota:
/high-grades-2024
- Método:
GET
- Descrição: Retorna uma lista de filmes com altas avaliações lançados em 2024.
- Resposta:
200 OK
: Retorna uma lista de filmes com altas avaliações de 2024.500 Internal Server Error
: Em caso de erro ao buscar filmes de alta avaliação.
- Rota:
/upcoming
- Método:
GET
- Descrição: Retorna uma lista de filmes que serão lançados em breve.
- Resposta:
200 OK
: Retorna uma lista de próximos lançamentos.500 Internal Server Error
: Em caso de erro ao buscar próximos lançamentos.
- Rota:
/lists
- Método:
POST
- Descrição: Cria uma nova lista de filmes.
- Autenticação: Requer token de autenticação.
- Resposta:
201 Created
: Retorna a lista criada.401 Unauthorized
: Se o token de autenticação estiver ausente ou inválido.400 Bad Request
: Se os dados fornecidos forem inválidos.
- Rota:
/lists
- Método:
GET
- Descrição: Retorna todas as listas de filmes do usuário autenticado.
- Autenticação: Requer token de autenticação.
- Resposta:
200 OK
: Retorna uma lista de listas do usuário.401 Unauthorized
: Se o token de autenticação estiver ausente ou inválido.400 Bad Request
: Em caso de erro ao buscar listas.
- Rota:
/lists/:id
- Método:
GET
- Descrição: Retorna os detalhes de uma lista específica pelo ID.
- Parâmetros:
id
(obrigatório): O ID da lista.
- Resposta:
200 OK
: Retorna os detalhes da lista.404 Not Found
: Se a lista não for encontrada.400 Bad Request
: Em caso de erro ao buscar detalhes da lista.
- Rota:
/lists/add-movie
- Método:
POST
- Descrição: Adiciona um filme à lista de filmes do usuário.
- Autenticação: Requer token de autenticação.
- Resposta:
200 OK
: Filme adicionado com sucesso.401 Unauthorized
: Se o token de autenticação estiver ausente ou inválido.400 Bad Request
: Em caso de erro ao adicionar filme à lista.
- Rota:
/lists/remove-movie
- Método:
POST
- Descrição: Remove um filme de uma lista de filmes do usuário.
- Autenticação: Requer token de autenticação.
- Resposta:
200 OK
: Filme removido com sucesso.401 Unauthorized
: Se o token de autenticação estiver ausente ou inválido.400 Bad Request
: Em caso de erro ao remover filme da lista.
- Rota:
/lists/:id
- Método:
DELETE
- Descrição: Deleta uma lista de filmes pelo ID.
- Autenticação: Requer token de autenticação.
- Parâmetros:
id
(obrigatório): O ID da lista.
- Resposta:
200 OK
: Lista deletada com sucesso.404 Not Found
: Se a lista não for encontrada.401 Unauthorized
: Se o token de autenticação estiver ausente ou inválido.400 Bad Request
: Em caso de erro ao deletar lista.
- Rota:
/register
- Método:
POST
- Descrição: Registra um novo usuário.
- Resposta:
201 Created
: Usuário registrado com sucesso.400 Bad Request
: Se os dados fornecidos forem inválidos.
- Rota:
/login
- Método:
POST
- Descrição: Autentica um usuário e retorna um token JWT.
- Resposta:
200 OK
: Retorna o token de autenticação.400 Bad Request
: Se as credenciais estiverem incorretas.
- Rota:
/protected
- Método:
GET
- Descrição: Exemplo de rota protegida que requer autenticação.
- Autenticação: Requer token de autenticação.
- Resposta:
200 OK
: Retorna uma mensagem de sucesso.401 Unauthorized
: Se o token de autenticação estiver ausente ou inválido.
app.ts
│ server.ts
│
├───config
│ apiConfig.ts
│ db.ts
│
├───controllers
│ authController.ts
│ listController.ts
│ movieController.ts
│
├───middlewares
│ authMiddleware.ts
│
├───models
│ listModel.ts
│ User.ts
│
├───routes
│ authRoutes.ts
│ listRoutes.ts
│ movieRoutes.ts
│
└───services
authService.ts
listService.ts
movieService.ts