Este projeto é uma API RESTful desenvolvida com PHP e Laravel para fornecer e receber informações de um banco de dados MySQL. A API inclui autenticação JWT para segurança e está documentada usando o Swagger.
Siga os passos abaixo para configurar e executar o projeto em sua máquina local.
git clone https://github.com/am-matheusoliveira/desafio-api-restful.git
cd desafio-api-restful
composer install
.env
Crie um arquivo .env
a partir do .env.example
e configure as variáveis de ambiente.
cp .env.example .env
Edite o arquivo .env
para incluir suas configurações de banco de dados, use este exemplo:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=seu_banco_de_dados - para este aplicativo o nome é: database_vagas
DB_USERNAME=seu_usuario - para este aplicativo o usuário é: root
DB_PASSWORD=sua_senha - para este aplicativo a senha é:
php artisan key:generate
Para gerar o JWT_SECRET
, execute o seguinte comando:
php artisan jwt:secret
Execute o script SQL que esta na pasta database-app/script-database.sql
para criar o banco de dados e as tabelas necessárias, caso esteja no Linux:
mysql -u seu_usuario -p sua_senha seu_banco_de_dados < database-app/script-database.sql
Para realizar esta tarefa no Windows abra o seu SGBD do MySQL e execute o script SQL mencionado acima.
php artisan migrate
Caso não esteja usando um Servidor Web como o Apache ou Nginx, execute o comando:
php artisan serve
A aplicação estará disponível em http://localhost:8000
.
Ou http://localhost/desafio-api-restful/
, caso esteja em um servidor web apache ou nginx.
O projeto inclui testes de integração para os endpoints de api/v1/buscar-vagas
e api/v1/buscar-vaga/{id}
. Para executar os testes, use os seguintes comandos:
php artisan test --filter=VagasEmpregoTest::test_list_all_vagas
php artisan test --filter=VagasEmpregoTest::test_show_vaga_by_id
php artisan test --filter=VagasEmpregoTest::test_vaga_not_exists
php artisan test --filter=VagasEmpregoTest
A API possui os seguintes endpoints:
GET /api/v1/buscar-vagas
GET /api/v1/burcar-vaga/{id}
POST /api/user/register
POST /api/user/login
POST /api/user/logout
A documentação da API está disponível via Swagger. Para acessar a documentação, navegue até:
Servidor Web Laravel: http://localhost:8000/api/documentation
Seu Servidor Web: http://localhost/desafio-api-restful/api/documentation
A API usa JWT para autenticar as solicitações dos usuários. Para acessar os endpoints protegidos, você deve incluir o token JWT no cabeçalho da solicitação.
Para obter o Token JWT navegue ate:
Servidor Web Laravel: http://localhost:8000/api/documentation
Seu Servidor Web: http://localhost/desafio-api-restful/api/documentation
Execute o endpoint: /api/user/login
, passando um Json com Email e Senha:
{
"email": "[email protected]",
"password": "password"
}
Após fazer login, você receberá um token JWT que deve ser usado nas solicitações subsequentes.
Clique no ícone de cadeado (Authorize) no canto superior direito do Swagger UI e inclua o token JWT.
Este projeto demonstra minhas habilidades no desenvolvimento de API RESTful com PHP e Laravel, incluindo:
Composer documentação oficial do Composer.
Laravel documentação oficial do Laravel.
Token JWT (JSON Web Token) documentação oficial do JWT.
Swagger JS documentação oficial do Swagger.
Sinta-se à vontade para explorar o código e fazer melhorias. Se tiver alguma dúvida, entre em contato.