clean-arch

module
v0.0.0-...-0a0505a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2024 License: MIT

README

Clean Architecture - Orders Service

Desafio do Full Cycle para o módulo de clean architecture. Esse projeto estende a base de código criada no curso do Full Cycle adicionando o caso de uso de listagem de pedidos e faz pequenos ajustes necessários para o seu funcionamento.

Ambiente

A configuração padrão é estabelecida por meio de variáveis de ambiente, essas estão definidas no arquivo cmd/ordersystem/.env (ignora-se práticas de segurança por trata-se de um projeto para fins de aprendizagem).

Migrações

As migrações são criadas automaticamente ao inciar a aplicação.

Validando REST API

A API REST roda por padrão no endereço base http://localhost:8000.

Para validar a criação de pedidos utilizando o plugin rest-client do VSCode, abra o arquivo api/create_order.http e execute a requisição POST http://localhost:8000/order.

Para validar a listagem ainda nessa abordagem, abra o arquivo api/list_order.http e execute a requisição GET http://localhost:8000/order

Validando gRPC

O servidor gRPC estará rodando por padrão no localhost:50051.

Para validar a listagem de orders primeiro precisamos ter algum pedido cadastrado no sistema. Para cadastrar utilizando a API gRPC, utilize a ferramenta evans, execute os seguintes comandos:

$ evans -r

> call CreateOrder

Após cadastro, liste os pedidos executando o comando:

$ evans -r

> call ListOrders

Validando GraphQL

O serviço GraphQL roda por padrão no endereço http://localhost:8080.

Para listagem de orders precisamos cadastrar ao menos um pedido. Para cadastrar um pedido utilizando a API GraphQL, abra o navegador no endereço informado e execute o seguinte comando:

mutation {
  createOrder (input: {
    id: "order-id",
    Price: 10.99,
    Tax: 0.99,
  }){
    id,
    Price,
    Tax,
    FinalPrice
  }
}

Com algum pedido já criado, execute a consulta de listagem, com o seguinte comando:

query {
  listOrders {
    id,
    Price,
    FinalPrice,
    Tax
  }
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL