Objetivo: Desafio: Desenvolver uma API RESTful,com envio e retorno de informações no formato JSON, e banco de dados para um e-commerce qualquer contendo rotas para as funcionalidades abaixo.
- Produtos: Criar,editar e inativar os produtos da loja. Também deve ser possível listá-los, sejam eles ativos ou inativos, retornando as informações ID, descrição,valor e status do produto.
- Usuário: Criar,editar e inativar os usuários da API.Também deve ser possível listá-los, sejam eles ativos ou inativos,retornando as informações ID, nome, e-mail e status do usuário.
- Pedido: Criar, editar e inativar os pedidos da loja. Também deve ser possível listá-los sejam eles ativos, inativos, pagos e não pagos retornando as informações ID,número do pedido, status do pedido, produto, descrição do produto e usuário comprador.
/products -> GET: Lista todos os produtos (id, description, price, status, createdAt e updatedAt);
/product/{id} -> GET: Lista um id em específico (id, description, price, status, createdAt e updatedAt);
/product -> POST: Cria um novo produto, esperando como request:
{
"status": "Inativo",
"price": 10.00,
"description": "terceiro"
}
/product/{id} -> PATCH: Edita um produto existente, esperando como request:
{
"status": "Ativo",
"price": 10.00,
"description": "terceiro"
}
/users -> GET: Lista todos os usuarios cadastrados (id, name, email, status, createdAt e updatedAt);
/user/{id} -> GET: Lista um id em específico (id, name, email, status, createdAt e updatedAt);
/user -> POST: Cria um novo usuario, esperando como request:
{
"name": "Jão",
"email": "teste@gmail.com",
"status": "ativo"
}
/user{id} -> PATCH: Edita um usuario existente, esperando como request:
{
"name": "Jão",
"email": "teste@gmail.com",
"status": "inativo"
}
/orders -> GET: Lista todos os pedidos cadastrados (id, orderNumber, status, productId, productDescription, userId, createdAt e updatedAt);
/order/{id} -> GET: Lista um id em específico
/order -> POST: Cria um novo pedido, esperando como request:
{
"status": "inativo",
"productId": "4",
"userId": "5"
}
/order{id} -> PATCH: Edita um pedido existente, esperando como request:
{
"status": "ativo",
"productId": "4",
"userId": "5"
}
Clonando o projeto:
git clone git@github.com:trickaugusto/symfonyTest.git
Vá para o diretório:
cd symfonyTest
OBS: Antes dos próximos passos, é importante criar um novo arquivo com nome '.env', usando como base o arquivo '.env example'. Depois só procurar essa linha: 'DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name', substituindo as seguintes informações: db_user, db_password e dbname, para as informações do seu local.
Instalando as dependências:
composer install
Criando a base no banco:
php bin/console doctrine:database:create
Criando as migrations:
php bin/console doctrine:migrations:migrate
Digite "yes" no terminal para os dois comandos acima.
Rodando o projeto
php -S 127.0.0.1:8080 -t public/
Agora só abrir um insomnia da vida e ser feliz!