Deploy realizado com sucesso! API disponível em https://aluraflix-api-mc.herokuapp.com/
Nesta semana, o desafio será complementar a API adicionando paginação nas requisições de vídeos e categorias. Além disso, foi solicitado para segurança dos recursos proporcionados pela API, adicionar um método de autenticação.
- Para garantir a segurança dos dados, implemente algum tipo de autenticação, para que só os usuários autenticados possam acessar as rotas de GET, POST, PUT e DELETE. Caso a autenticação não seja válida, retornar uma mensagem informando Não autorizado ou Credenciais inválidas. Caso usuário e senha inválido, informar Usuário e senha inválido.
/usuarios/authenticate
Endpoint público que aceita requisições HTTP POST contendo o nome do usuário e senha no corpo da mensagem. Se o usuário ou senha estiverem corretos, os detalhes do usuário são retornados.
/usuarios
Rota segura que aceita requisições HTTP GET e retorna uma lista de todos os usuários na aplicação se o HTTP Authorization Header contém credenciais válidas de uma autenticação básica. Caso contrário, a resposta é um 401 Unauthorized.
- Criar o seguinte endpoint com um número fixo de filmes disponível, sem a necessidade de autenticação:
GET /videos/free
Instruções sobre como usar o app Postman para autenticar um usuário com a API, e fazer uma requisição autenticada com autenticação básica para recuperar dados da API:
- Download: https://www.getpostman.com/
- Abra uma nova aba de request clicando no botão (+) no final das abas.
- Mude o tipo de método de http request para "POST".
- No campo de URL digite o endereço da rota de autenticação da API. Por exemplo, http://localhost:5000/users/authenticate.
- Na aba "Body", mude o tipo da mensagem para "raw", o formato para "JSON (application/json)".
- Clique no botão "Send". Digite o conteúdo abaixo na área do corpo da mensagem:
{
"username": "test",
"password": "test"
}
- Você deve receber uma mensagem de "200 OK" contendo os detalhes do usuário no corpo da resposta, o que indica que o usuário e senha estão corretos.
- Abra uma nova aba de request clicando no botão (+) no final das abas.
- Mude o tipo de método de http request para "GET".
- No campo de URL digite o endereço desejado. Por exemplo, http://localhost:5000/videos.
- Na aba de "Authorization" abaixo da URL, mude para "Basic Auth", e digite test no Username e test em "Password".
- Clique no botão "Send".
- Você deve receber uma mensagem de "200 OK" contendo um JSON com os registros que você deseja visualizar.
Depois de alguns testes com usuários, foi definido que a próxima feature a ser desenvolvida nesse projeto é a divisão dos vídeos por categoria, para melhorar a experiência de organização da lista de vídeos pelo usuário.
Dividimos a implementação dessa feat da seguinte forma:
- Adicionar categorias e seus campos na base de dados;
- Rotas CRUD para /categorias;
- Incluir campo categoriaId no modelo video;
- Escrever os testes necessários.
Após alguns testes com protótipos feitos pelo time de UX de uma empresa, foi requisitada a primeira versão de uma plataforma para compartilhamento de vídeos. A plataforma deve permitir ao usuário montar playlists com links para seus vídeos preferidos, separados por categorias.
Os times de frontend e UI já estão trabalhando no layout e nas telas. Para o backend, as principais funcionalidades a serem implementadas são:
- API com rotas implementadas segundo o padrão REST;
- Validações feitas conforme as regras de negócio;
- Implementação de base de dados para persistência das informações;
- Serviço de autenticação para acesso às rotas GET, POST, PUT e DELETE.