🚧 Projeto em construção 🚧
São 4 semanas de desafios propostos pela plataforma de ensino Alura com o objetivo de praticar construindo um projeto. Toda semana são disponibilizados desafios e o aluno deve usar o material de apoio fornecido a cada semana para resolver o desafio proposto.
Essa edição tem como objetivo construir uma api de plataforma de streaming.
-
1ª semana - CRUD de videos e testes de api utilizando Postman
- Retornar vídeos
- Retornar um vídeo
- Cadastrar vídeos
- Atualizar vídeo
- Deletar vídeo
- Testes Postman
-
2ª semana - Nesta segunda semana do desafio o objetivo é criar mais de um modelo/entidade, rotas CRUD e relacionais, buscas na base via parâmetros de query, fazer testes de unidade e integração.
- Retornar categorias
- Retornar um categoria
- Cadastrar categoria
- Atualizar categoria
- Deletar categoria
- Atribuir vídeo a categoria
- Retornar vídeos por categoria
- Utilizar query parameters em vídeo
- Testes de unidade
- Testes de integração
-
3ª e 4ª semana - Paginação, autenticação e deploy da aplicação.
- Paginação
- Autenticação
- Deploy (Deploy feito na versão em Laravel)
Symfony 5.4, Doctrine, MySQL e PHP 7.3.5.
1 - Baixar os arquivos do repositório utilizando git clone
2 - Instalar as dependências do projeto
componser install
3 - Editar o arquivo .env com as credencias do banco de dados
4 - Criar banco
php bin\console doctrine:database:create
5 - Rodar as migrations
php bin\console doctrine:migrations:migrate
6 - Rodar fixtures para criar usuário para teste
php bin\console doctrine:fixtures:load
6 - Subir servidor
php -S localhost:8080 -t public
O padrão de formato utilizado é o Json tanto para requisições como resposta.
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
GET | /login | Retorna token obrigatório em todas as outras requisições | { |
- |
O login e senha padrão são "teste@teste.com.br" e "123456". A autenticação é feita passando um Bearer Token como Authorization.
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
GET | /categorias | Retornar todas as categorias | - | - |
/categorias?sort[titulo]=ASC&sort[cor]=DESC
/categorias?titulo=curso
/categorias?page=1&per_page=2
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
GET | /categorias/{id} | Retornar uma categoria por id | - | - |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
POST | /categorias | Cadastrar uma categoria | { |
- |
Nome | Tipo | Descrição |
---|---|---|
titulo | string | Obrigatório |
cor | string | Obrigatório |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
PUT | /categorias/{id} | Atualizar uma categoria por id | { |
- |
Nome | Tipo | Descrição |
---|---|---|
titulo | string | Obrigatório |
cor | string | Obrigatório |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
DELETE | /categorias/{id} | Deletar uma categoria por id | - | - |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
GET | /videos | Retornar todos os videos | - | - |
/videos?sort[titulo]=ASC&sort[url]=DESC
/videos?titulo=curso laravel
/videos?page=1&per_page=2
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
GET | /videos/{id} | Retornar um video por id | - | - |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
POST | /videos | Cadastrar um video | { |
- |
Nome | Tipo | Descrição |
---|---|---|
titulo | string | Obrigatório |
descricao | string | Obrigatório |
url | string | Obrigatório |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
PUT | /videos/{id} | Atualizar um video por id | { |
- |
Nome | Tipo | Descrição |
---|---|---|
titulo | string | Obrigatório |
descricao | string | Obrigatório |
url | string | Obrigatório |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
DELETE | /videos/{id} | Deletar um video por id | - | - |