O que é o AluraFlix
O AluraFlix é uma API REST de vídeos criada como parte do Alura Challenge Back-End 1 e desenvolvido por mim, Marco Antonio (Chufretalas).
GithubEndpoints
Para utilizar qualquer endpoint, excluindo os de autenticação e /api/videos/free, é necessário fazer login para gerar um token JWT
- GET /api/videos/free
Retorna os primeiros 25 videos da base de dados, sendo o único endpoint que não requer um token JWT.
- GET /api/videos
Retorna todos os videos cadastrados na base de dados.
Search params:
- ?search=[string]
Busca por vídeos que incluem a string de busca no título.
- ?page=[page_number]
Ativa a paginação do resultado, sendo mostrados 5 vídeos por página.
- ?search=[string]
- GET /api/videos/[id]
Retorna um video de acordo com a id indicada.
- GET /api/categorias
Retorna todas as categorias cadastradas.
- GET /api/categorias/[id]
Retorna uma categoria de acordo com a id indicada.
- GET /api/categorias/[id]/videos
Retorna todos os vídeos com a id de categoria indicada.
- POST /api/videos
Recebe um JSON no corpo da requisição com os campos titulo, descricao, url e, opcionalmente (mas não recomendado), id e cria uma nova entrada de video na base de dados.
- POST /api/categorias
Recebe um JSON no corpo da requisição com os campos titulo, cor e, opcionalmente (mas não recomendado), id e cria uma nova entrada de categoria na base de dados.
- PUT/PATCH /api/videos/[id]
Recebe um JSON no corpo da requisição com os campos titulo, descrição e/ou url, nesse caso, todos os campos são opcionais, mas ainda seguem suas respectivas regras e tipos de dados. Altera a o vídeo indicado pela id na url com as informações passadas no body, se alguma informação for inválida, por exemplo um titulo grande demais, o campo é ignorado e a edição procede normalmente.
- PUT/PATCH /api/categorias/[id]
Recebe um JSON no corpo da requisição com os campos titulo e/ou cor, nesse caso, todos os campos são opcionais, mas ainda seguem suas respectivas regras e tipos de dados. Altera a o vídeo indicado pela id na url com as informações passadas no body, se alguma informação for inválida, o campo é ignorado e a edição procede normalmente.
- DELETE /api/videos/[id]
Deleta o video indicado pela id na url.
- DELETE /api/categorias/[id]
Deleta a categoria indicada pela id na url.
- POST /api/signup
Envie um POST com 'nome' e 'senha' em JSON, se os campos forem válidos, a senha passa por hash e um novo usuário é criado no campo de dados.
- POST /api/login
Envie um POST com 'nome' e 'senha', se as credenciais forem válidas, retorna um token JWT que é necessário para quase todas as requisições da API. O token tem validade de uma hora.
- POST /api/validar_token
Envie um POST com 'token' em JSON para saber se o token em questão ainda é válido.