Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jhon-henkel/client-server-api-challenge
Desafio GO
https://github.com/jhon-henkel/client-server-api-challenge
api golang
Last synced: about 1 month ago
JSON representation
Desafio GO
- Host: GitHub
- URL: https://github.com/jhon-henkel/client-server-api-challenge
- Owner: Jhon-Henkel
- License: mit
- Created: 2023-09-03T23:32:17.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-05T23:09:29.000Z (over 1 year ago)
- Last Synced: 2023-09-05T23:24:04.406Z (over 1 year ago)
- Topics: api, golang
- Language: Go
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Client Server API Challenge
Você precisará nos entregar dois sistemas em Go:
- client.go
- server.go
Os requisitos para cumprir este desafio são:
O client.go deverá realizar uma requisição HTTP no server.go solicitando a cotação do dólar.
O server.go deverá consumir a API contendo o câmbio de Dólar e Real no endereço: https://economia.awesomeapi.com.br/json/last/USD-BRL e em seguida deverá retornar no formato JSON o resultado para o cliente.
Usando o package "context", o server.go deverá registrar no banco de dados SQLite cada cotação recebida, sendo que o timeout máximo para chamar a API de cotação do dólar deverá ser de 200ms e o timeout máximo para conseguir persistir os dados no banco deverá ser de 10ms.
O client.go precisará receber do server.go apenas o valor atual do câmbio (campo "bid" do JSON). Utilizando o package "context", o client.go terá um timeout máximo de 300ms para receber o resultado do server.go.
Os 3 contextos deverão retornar erro nos logs caso o tempo de execução seja insuficiente.
O client.go terá que salvar a cotação atual em um arquivo "cotacao.txt" no formato: Dólar: {valor}
O endpoint necessário gerado pelo server.go para este desafio será: /cotacao e a porta a ser utilizada pelo servidor HTTP será a 8080.