API REST para Gerenciamento de Produtos e SKUs.
Para configurar o sistema no seu computador você precisa do ruby, node e yarn configurado no seu computador.
- Ruby: 3.2.1
- Rails: 7.0.8
- Node.js: 17 (ou superior)
Siga os passos abaixo para configurar o sistema no seu computador.
- Instale todas as dependências de assets executando o comando:
yarn install - Instale todas as dependências do Rails (gems) executando o comando:
bundle install - Configure o arquivo database.yml localizado na pasta config com seu usuário e senha do banco de dados.
- Com o banco de dados configurado, crie os bancos de dados executando:
rails db:create - Execute as migrações do banco de dados com o comando:
rails db:migrate - Popule o banco de dados com dados iniciais usando:
rails db:seed - Compile os assets para produção com o comando:
assets:precompile
Agora com tudo configurado, basta executa rails s
Para acessar a interface visual do projeto, abra seu navegador e digite o seguinte endereço na barra de URL:
http://localhost:3000
ou utilize o host inicializado se estiver configurado para outro endereço.
Email: admin@admin.com
Senha: 1234567890
Para acessar a API, você pode utilizar programas como o Postman, Restfox, Insomnia, entre outros.
Endpoint para autenticação:
POST /api/v1/auth/authenticate
Exemplo do corpo da solicitação:
{
"email": "admin@admin.com",
"password": "1234567890"
}Após receber o token, adicione-o em Authorization -> Bearer Token
Obter todos os produtos:
GET /produtos
Criar um novo produto:
POST /produtos
Exemplo do corpo da solicitação para criar um produto:
{
"name_display": "Dodge Charger",
"description": "Carro",
"manufacturer": "Lamborghini",
"active": true,
"skus_attributes": [
{
"name": "Altis Hybrid 1.8 16V CVT",
"stock": 5,
"price_table": "250.000,00",
"price_listing": "260.000,00"
}
]
}Obter um produto específico por ID:
GET /produtos/{id}
Atualizar um produto por ID:
PACHT /produtos/{id}
Exemplo do corpo da solicitação para atualizar um produto:
{
"name_internal": "super-mario",
"name_display": "Super Mario",
"description": "Jogos eletrônicos",
"manufacturer": "Nintendo",
"active": false,
"skus_attributes": [
{
"id": {id},
"code": "462771307752",
"name": "Super Nintendo",
"stock": 1,
"price_table": "100,00",
"price_listing": "200,00"
}
]
}Deletar um produto por ID:
DELETE /produtos/{id}
Para acessar a documentação Swagger da API, siga os passos abaixo:
http://localhost:3000/api-docPara executar os testes automatizados nos modelos, utilize o seguinte comando:
bundle exec rspec spec/modelsApenas Testes RSpec nos Modelos:
- Usuarios
- Produtos
- SKUs