Clone Repositório
git clone git@github.com:paulodm145/candidatos-vagas.git my-project
cd my-project/
Crie o Arquivo .env
cp .env.example .env
Atualize as variáveis de ambiente do arquivo .env
APP_NAME="Nome do APP"
APP_URL=http://localhost:8989
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=nome_que_desejar_db
DB_USERNAME=root
DB_PASSWORD=root
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
Suba os containers do projeto
docker-compose up -d
Acesse o container app com o bash
docker-compose exec app bash
Instale as dependências do projeto
composer install
Gere a key do projeto Laravel
php artisan key:generate
Acesse o projeto http://localhost:8989
- O projeto está configurado para rodar na porta 8989, caso queira alterar, basta alterar no arquivo docker-compose.yml
- O projeto está configurado para rodar com o banco de dados MySQL, caso queira alterar, basta alterar no arquivo docker-compose.yml
- O Arquivo Insonia_2023-03-05.json contém as rotas da API e pode ser importado no Insomnia para testes;
- Como forma de autenticação foi implantado o Laravel Passport, para gerar as chaves de acesso, basta executar o comando abaixo:
php artisan passport:install
- Documentação do Laravel Passport: https://laravel.com/docs/9.x/passport
- Exemplo de rota com consulta:
`GET` http://localhost:8989/api/candidatos?filters[]=nome|like&nome=sr
O parametro Filters é um array que recebe os campos que serão filtrados, o operador. Exemplo: filters[]=nome|like
O parametro nome é o valor(campo) que será filtrado seguido do valor. Exemplo: nome=sr
É possível passar mais de um filtro, basta separar por &. Exemplo: filters[]=nome|like&nome=sr&filters[]=....
Outros parametros:
- per_page: Quantidade de registros por página. O padrão é 20;
- sort_field: Campo que será ordenado. O padrão é id;
- sort_direction: Ordem de ordenação (asc ou desc). O padrão é asc;
- PHP 8.0
- Laravel 9.x
- Docker
- MySQL