Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Desafio Multithreading - Busca de CEP

Este projeto foi desenvolvido em Go com o objetivo de aplicar conceitos de concorrência utilizando goroutines, channels e select.

A aplicação realiza consultas simultâneas em duas APIs de CEP e retorna a resposta da mais rápida.


Conceitos aplicados

  • Goroutines (execução paralela)
  • Channels (comunicação entre goroutines)
  • Select (controle de concorrência)
  • Timeout (controle de tempo)
  • Consumo de APIs externas com net/http

APIs utilizadas


Como funciona

  1. O usuário informa um CEP via linha de comando

  2. O sistema faz duas requisições simultâneas:

    • BrasilAPI
    • ViaCEP
  3. A primeira resposta recebida é utilizada

  4. A outra resposta é ignorada

  5. Caso nenhuma responda em até 1 segundo, ocorre timeout


Como executar

Pré-requisitos

  • Go instalado (versão 1.20+ recomendada)

Rodando o projeto

go run cmd/cep-race/main.go 01001000

Exemplo de saída

API: BrasilAPI
CEP: 01001-000
Rua: Praça da Sé
Bairro: Sé
Cidade: São Paulo
UF: SP

Timeout

Caso nenhuma API responda em até 1 segundo:

timeout

Estrutura do projeto

cmd/
  └── cep-race/
internal/
  ├── api/
  ├── dto/
  └── entity/

Observação

Este projeto tem fins educacionais e demonstra conceitos fundamentais de concorrência em Go.

About

Repositório destinado ao desafio Multithreading da pós GoExpert

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages