Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dionizio8/go-temppc-dist
go expert
https://github.com/dionizio8/go-temppc-dist
golang opentelemetry tracing
Last synced: 22 days ago
JSON representation
go expert
- Host: GitHub
- URL: https://github.com/dionizio8/go-temppc-dist
- Owner: Dionizio8
- Created: 2024-07-20T14:04:21.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-22T20:38:57.000Z (6 months ago)
- Last Synced: 2024-10-31T20:07:30.613Z (2 months ago)
- Topics: golang, opentelemetry, tracing
- Language: Go
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Go Temppc Dist
Desenvolver um sistema em Go que receba um CEP, identifica a cidade e retorna o clima atual (temperatura em graus celsius, fahrenheit e kelvin) juntamente com a cidade. Esse sistema deverá implementar OTEL(Open Telemetry) e Zipkin.
## Requisitos - Serviço A (responsável pelo input):* O sistema deve receber um input de 8 dígitos via POST, através do schema: { "cep": "29902555" }
* O sistema deve validar se o input é valido (contem 8 dígitos) e é uma STRING
* Caso seja válido, será encaminhado para o Serviço B via HTTP- Caso não seja válido, deve retornar:
- *Código HTTP:* **422**
- *Mensagem:* **invalid zipcode**---
## Requisitos - Serviço B (responsável pela orquestração):
* O sistema deve receber um CEP válido de 8 digitos
* O sistema deve realizar a pesquisa do CEP e encontrar o nome da localização, a partir disso, deverá retornar as temperaturas e formata-lás em: Celsius, Fahrenheit, Kelvin juntamente com o nome da localização.
* O sistema deve responder adequadamente nos seguintes cenários:- Em caso de sucesso:
- *Código HTTP:* **200**
- *Response Body:*
```json
{
"city": "São Paulo",
"temp_C": 28.5,
"temp_F": 28.5,
"temp_K": 28.5
}
```
- Em caso de falha, caso o CEP não seja válido (com formato correto):
- *Código HTTP:* **422**
- *Mensagem:* **invalid zipcode**
- Em caso de falha, caso o CEP não seja encontrado:
- *Código HTTP:* **404**
- *Mensagem:* **can not find zipcode**---
## OTEL + Zipkin
Após a implementação dos serviços, adicione a implementação do OTEL + Zipkin:
- Implementar tracing distribuído entre **Serviço A** - **Serviço B**
- Utilizar span para medir o tempo de resposta do serviço de busca de CEP e busca de temperatura
---# Arquivos de Testes (_.http_)
- [Request API Local](./api/api.http)---
# Executando Docker Local
Será necessário inicializar com o comando:
```bash
docker compose up -d --build
```
E pode realizar os testes com arquivo [api.http](./api/api.http)### zipkin docker: http://localhost:9411/zipkin/