- PHP (7.2.34)
- LUMEN (7.2.2) Laravel Components (^7.0)
- PHPUNIT (7.5.2)
- COMPOSER (2.5.5)
Clone o repositório em uma pasta
git clone https://github.com/lc-lucascunha/lumen-api-restful.git
Acesse a pasta do projeto
cd lumen-api-restful/
Instale as dependência
composer install
Faça uma cópia do arquivo de configuração
cp .env.example .env
Após criar a DATABASE, abra o arquivo .env e definida as configurações da base de dados
nano .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=
DB_USERNAME=
DB_PASSWORD=
Defina também no .env as configurações do servidor de email
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=your-email-password
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"
Execute a migração da base de dados com os dados inciais
php artisan migrate --seed
php -S localhost:8080 -t public
vendor/bin/phpunit
Resultado esperado:
............... 15 / 15 (100%)
OK (15 tests, 39 assertions)
Aqui estão listados todos os endpoints disponíveis na API, juntamente com suas descrições e exemplos de uso.
- GET
/api/clientsListar todos os clientes. - POST
/api/clientsCadastrar um novo cliente. - GET
/api/clients/{id}Exibir detalhes de um cliente específico. - PUT
/api/clients/{id}Atualizar os dados de um cliente. - DELETE
/api/clients/{id}Excluir um cliente. - GET
/api/clients/{id}/ordersListar todos os pedidos associados a um cliente específico.
- GET
/api/productsListar todos os produtos. - POST
/api/productsCadastrar um novo produto. - GET
/api/products/{id}Exibir detalhes de um produto específico. - PUT
/api/products/{id}Atualizar os dados de um produto. - DELETE
/api/products/{id}Excluir um produto.
- GET
/api/ordersListar todos os pedidos. - POST
/api/ordersCadastrar um novo pedido. - GET
/api/orders/{id}Exibir detalhes de um pedido específico. - PUT
/api/orders/{id}Atualizar os dados de um pedido. - DELETE
/api/orders/{id}Excluir um pedido.
Cadastra um novo cliente.
- URL:
/api/clients - Método: POST
Exemplo do corpo da requisição:
{
"name": "Nome do cliente",
"email": "[email protected]",
"phone": "1234567890",
"birthdate": "1990-01-01",
"zip_code": "12345678",
"address": "Endereço do cliente",
"province": "Bairro do cliente",
"complement": "Complemento do endereço"
}
Atualiza os dados de um cliente existente.
- URL:
/api/clients/{id} - Método: PUT
Exemplo do corpo da requisição:
{
"name": "Novo nome do cliente",
"email": "[email protected]",
"phone": "9876543210",
"birthdate": "1990-02-02",
"zip_code": "87654321",
"address": "Novo endereço do cliente",
"province": "Novo estado do cliente",
"complement": "Novo complemento do endereço"
}
Cadastra um novo produto.
- URL:
/api/products - Método: POST
Exemplo do corpo da requisição:
{
"name": "Nome do produto",
"price": 9.99,
"photo": "URL da foto do produto"
}
Atualiza os dados de um produto existente.
- URL:
/api/products/{id} - Método: PUT
Exemplo do corpo da requisição:
{
"name": "Novo nome do produto",
"price": 14.99,
"photo": "Nova URL da foto do produto"
}
Cadastra um novo pedido.
- URL:
/api/orders - Método: POST
Exemplo do corpo da requisição:
{
"client_id": 5,
"product_ids": [
1,
4
]
}
Atualiza os dados de um pedido existente.
- URL:
/api/orders/{id} - Método: PUT
Exemplo do corpo da requisição:
{
"client_id": 5,
"product_ids": [
2,
6,
8
]
}