Repositório oficial do curso Aprenda Laravel na prática.
Aqui abordamos os prinicipais pontos do melhor framework do mercado PHP
- Models
- Routes
- Controllers
- Eloquent ORM
- Migrations
- POO
- Modelagem do Banco de Dados
- Este projeto faz parte da minha série de cursos focados na capacitação e direcionamento de desenvolvedores que gostariam de dar o próximo passo, adquirir mais confiança no seu trabalho, conseguir promoção ou fazer transição de carreira
- A construção de API's faz parte da rotina de um desenvolvedor back-end, então esse projeto serviu como uma simulação da rotina real de um desenvolvedor back-end atuando com LARAVEL.
- O desafio consistia na construção de uma API REST utilizando LARAVEL que permitisse o gerenciamento de filmes.
- Para o desafio foram criadas as seguintes tabelas:
- genero
- classificacao
- ator
- diretor
- filme
- filme_ator
- filme_diretor
- filme_genero
Method: GET
Url: /api/v1/generos
- Para listar todos os gênerosMethod: GET
Url: /api/v1/generos/{id}
- Para listar um gênero em específicoMethod: POST
Url: /api/v1/generos
- Para Adicionar um novo gênero
- Parameters:
- ds_genero (string)Method: PUT/PATCH
Url: /api/v1/generos/{id}
- Para Atualizar um gênero
- Parameters:
- ds_genero (string)Method: DELETE
Url: /api/v1/generos/{id}Method: GET
Url: /api/v1/classificacoes
- Para listar todos as classificaçõesMethod: GET
Url: /api/v1/classificacoes/{id}
- Para listar uma classificação em específicoMethod: POST
Url: /api/v1/classificacoes
- Para Adicionar uma nova classificação
- Parameters:
- ds_classificacao (string)
- ds_observacao (text)
- ds_violencia (text)
- ds_sexo_nudez (text)
- ds_drogas (text)Method: PUT/PATCH
Url: /api/v1/classificacoes/{id}
- Para Atualizar uma classificação
- Parameters:
- ds_classificacao (string)
- ds_observacao (text)
- ds_violencia (text)
- ds_sexo_nudez (text)
- ds_drogas (text)Method: DELETE
Url: /api/v1/classificacoes/{id}Method: GET
Url: /api/v1/atores
- Para listar todos os atoresMethod: GET
Url: /api/v1/atores/{id}
- Para listar um ator em específicoMethod: POST
Url: /api/v1/atores
- Para Adicionar um novo ator
- Parameters:
- nm_ator (string)Method: PUT/PATCH
Url: /api/v1/atores/{id}
- Para Atualizar um ator
- Parameters:
- nm_ator (string)Method: DELETE
Url: /api/v1/atores/{id}Method: GET
Url: /api/v1/diretores
- Para listar todos os diretoresMethod: GET
Url: /api/v1/diretores/{id}
- Para listar um diretor em específicoMethod: POST
Url: /api/v1/diretores
- Para Adicionar um novo diretor
- Parameters:
- nm_diretor (string)Method: PUT/PATCH
Url: /api/v1/diretores/{id}
- Para Atualizar um diretor
- Parameters:
- nm_diretor (string)Method: DELETE
Url: /api/v1/diretores/{id}Method: GET
Url: /api/v1/filmes
- Para listar todos os filmesMethod: GET
Url: /api/v1/filmes/{id}
- Para listar um filme em específicoMethod: POST
Url: /api/v1/filmes
- Para Adicionar um novo filme
- Parameters:
- titulo (string)
- dt_lancamento (datetime)
- duracao (string)
- classificacao_id (int)(foreign key)Method: PUT/PATCH
Url: /api/v1/filmes/{id}
- Para Atualizar um filme
- Parameters:
- titulo (string)
- dt_lancamento (datetime)
- duracao (string)
- classificacao_id (int)(foreign key)Method: DELETE
Url: /api/v1/filmes/{id}Method: GET
Url: /api/v1/filmes/{id}/atores
- Para listar todos os atores de um filme em específicoMethod: GET
Url: /api/v1/filmes/{id}/atores/{idAtor}
- Para listar um ator em específico de um determinado filmeMethod: POST
Url: /api/v1/filmes/{id}/atores
- Para Adicionar um novo ator
- Parameters:
- ator_id (int)(foreign key)Method: PUT/PATCH
Url: /api/v1/filmes/{id}/atores/{idAtor}
- Não implementado, foi preferido a remoção do ator e a posterior adição do novo ator, realizando assim uma trocaMethod: DELETE
Url: /api/v1/filmes/{id}/atores/{idAtor}Method: GET
Url: /api/v1/filmes/{id}/diretores
- Para listar todos os diretores de um filme em específicoMethod: GET
Url: /api/v1/filmes/{id}/diretores/{idDiretor}
- Para listar um diretor em específico de um determinado filmeMethod: POST
Url: /api/v1/filmes/{id}/diretores
- Para Adicionar um novo diretor
- Parameters:
- diretor_id (int)(foreign key)Method: PUT/PATCH
Url: /api/v1/filmes/{id}/diretores/{idDiretor}
- Não implementado, foi preferido a remoção do diretor e a posterior adição do novo diretor, realizando assim uma trocaMethod: DELETE
Url: /api/v1/filmes/{id}/diretores/{idDiretor}- Clone o repositório
- Instale o composer
- Acesse a raiz do projeto
- Com o console aberto, execute o comando:
composer install - Após a instalação de todas as dependências necessárias, execute o comando:
cp .env.example .env(para gerar o arquivo .env) - Execute o comando:
php artisan key:generate - Com o seu ambiente de desenvolvimento rodando, crie uma nova base de dados com o nome:
api_filme - Para a criação das tabelas e dos registros de teste, execute o comando:
php artisan migrate:fresh --seed - Após toda a configuração necessária, execute o comando:
php artisan serve - O projeto deve estar disponível no endereco: localhost:8000/api/v1/
- É aconselhável que você tenha em sua máquia o postman para que possa fazer os devidos testes sobre as rotas disponíveis nesta API.
- PHP 7.4.3 +
- Extensão de PHP: mysqli | curl | mbstring
- LARAVEL 8x+
- Versão do servidor: 10.4.11-MariaDB
- API ainda passará por alterações, esta API não representa uma amostra real, devendo ser utilizada apenas para se ter uma noção sobre como funciona um API REST.
- Qualquer dúvida ou sugestão, entre em contato pelo e-mail: contato@jellycode.com.br