Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jhon-henkel/go-lang-full-cycle-clean-architecture
Repositório para implementação do módulo de clean architecture do curso Go-Expert da Full Cycle
https://github.com/jhon-henkel/go-lang-full-cycle-clean-architecture
Last synced: about 1 month ago
JSON representation
Repositório para implementação do módulo de clean architecture do curso Go-Expert da Full Cycle
- Host: GitHub
- URL: https://github.com/jhon-henkel/go-lang-full-cycle-clean-architecture
- Owner: Jhon-Henkel
- License: mit
- Created: 2023-12-28T23:11:44.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2023-12-30T01:28:12.000Z (12 months ago)
- Last Synced: 2023-12-31T00:27:20.040Z (12 months ago)
- Language: Go
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go-Lang Full Cycle clean architecture module
Repositório para implementação do módulo de clean architecture do curso Go-Expert da Full Cycle## Desafio
Olá devs!Agora é a hora de botar a mão na massa. Pra este desafio, você precisará criar o useCase de listagem das orders.
Esta listagem precisa ser feita com:
- Endpoint REST (GET /order)
- Service ListOrders com GRPC
- Query ListOrders GraphQLNão esqueça de criar as migrações necessárias e o arquivo api.http com a request para criar e listar as orders.
## Rodando o projeto
Iniciar o Docker que está na raiz do projeto, e em seguida rodar os comandos (um comando por vez):
```bash
make migrate
cd cmd/ordersystem/
go run main.go wire_gen.go
```## Testando o projeto
- #### HTTP
Rodar a requests contidas na pasta `api` com o nome `api.http`.
- #### GRPC
Rodar o comando:
```bash
evans -r repl
package pb
service OrderService
call [Method Name] # Selecionar o método (CreateOrder ou ListOrders).
```
- #### GraphQL
Acessar o endereço `http://localhost:8080/graphql` e rodar a query:
- Create Order:
```graphql
mutation createOrder {
createOrder(
input: {
id: "bbb",
Price: 10.30,
Tax: 50.10
}
)
{
id,
Price,
Tax,
FinalPrice
}
}
```
- List Orders:
```graphql
query listOrders {
orders {
id
Tax
Price
FinalPrice
}
}
```## Erros comuns:
- Dirty database version 1 ao rodar `make migrate`. Fix and force version. Rode (um comando por vez):
```bash
docker exec -it mysql_clean_architecture bash
mysql -h localhost -u root -p
root
use orders;
truncate table schema_migrations;
```