Projeto de uma API construída com PHP nativo.
Este projeto tem como base o projeto proposto pela Alura, o qual a plataforma disponibiliza apenas o objetivo e deixa livre para o estudante realizar o projeto da maneira que desejar.
- Criar a tabela Videos
- Criar a tabela Categorias
- Criar a requisição GET /videos => Busca todos os videos
- Criar a requisição GET /videos/{id} => Busca um video individualmente
- Criar a Requisição POST /videos => Cadastra um novo video
- Criar a Requisição DELETE /videos/{id} => Deleta um video
- Criar a Requisição PUT | PATCH /videos/{id} => Atualiza um video
- Criar a Requisição GET /categorias => Busca todas as categorias
- Criar a Requisição GET /categorias/{id} => Busca uma categoria individualmente
- Criar a Requisição POST /categorias => Cadastra uma nova categoria
- Criar a Requisição DELETE /categorias/{id} => Deleta uma categoria
- Criar a Requisição PUT | PATCH /categorias/{id} => Atualiza uma categoria
- Criar a Requisição GET /categorias/{id}/videos => Busca todos os videos de uma categoria
- Criar a Requisição GET /videos?search={nome} => Busca um video pelo título
- Vincular os videos as categorias
- Criar um sistema de autenticação
- Utilizar Arquitetura MVC
- Criar Container MySQL
- Criar Sistema de Migrations
- Criar um Router
- Criar Middlewares
- Utilizar Autoload do Composer (PSR 4)
- Utilizar Sistema de Container de Injeção de Dependências (PSR 11)
- Utilizar RequestHandlerInterface (PSR 15)
- Utilizar ServerRequestInterface e ResponseInterface (PSR 7)
- Construir os as requisições e Respostas com Factories (PSR 17)
- Utilizar Stream nas Responses
- Dupla Validação, validações das Requisições nos Controllers e nas Requisições do Banco (PDO Bind Value)
- Tests de Validação Utilizando PHPUnit
- Utilizando Seeders e Fake Datas
- Utilizar o algoritmo ARGON2ID para hash de senha
- Realizar verificação do algoritmo de hash para senha atualizá-la caso esteja 'hasheada' em outra versão
- Realizar a verificação do hash da senha mesmo com e-mail inválido, evitando facilitar Timing attacks
- Utilizar autorização com JWT token e realizar a verificação utilizando Middlewares