🚧 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ídeo
- Atualizar vídeo
- Deletar vídeo
- Testes Postman
-
2ª semana - CRUD de categorias e 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
Laravel 8, 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 - Rodar as migrations
php artisan migrate
5 - Rodar seeder para criar usuário teste
php artisan db:seed --class=AdminUserSeeder
5 - Subir o servidor
php artisan serve
O padrão de formato utilizado é o Json tanto para requisições como resposta.
https://challenge-alura-back-end-5-laravel-gi71.vercel.app/api/
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
POST | /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.
Todas as rotas devem receber os cabeçalhos:
Cabeçalho | Valor |
---|---|
Accept | application/json |
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 |
categorias_id | int | Opcional |
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 |
categorias_id | int | Opcional |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
DELETE | /videos/{id} | Deletar um video por id | - | - |
Método | Rota | Descrição | BODY PARAMS | QUERY PARAMS |
---|---|---|---|---|
GET | /categorias/{id}/videos | Retornar todos os videos de uma categoria por id | - | - |