Socket
Book a DemoInstallSign in
Socket

github.com/marcosocram/fullcycle-multithreading-cep-api

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/marcosocram/fullcycle-multithreading-cep-api

v0.0.0-20241106044027-fa86a5e8d097
Source
Go
Version published
Created
Source

fullcycle-multithreading-cep-api

Um serviço em Go para buscar o endereço de um CEP, consultando duas APIs diferentes e retornando a resposta mais rápida. O serviço faz requisições concorrentes para as APIs BrasilAPI e ViaCEP, e exibe o endereço obtido da primeira API a responder dentro de um limite de 1 segundo.

Funcionalidades

  • Realiza duas requisições concorrentes para buscar o endereço de um CEP.
  • Retorna a resposta da API que responder mais rapidamente.
  • Limita o tempo de resposta a 1 segundo; caso contrário, retorna um erro de timeout.

Requisitos

  • Go 1.15 ou superior
  • Conexão com a internet para acessar as APIs

Como rodar o serviço

  • Clone o repositório:

    git clone https://github.com/marcosocram/fullcycle-multithreading-cep-api.git
    cd fullcycle-multithreading-cep-api
    
  • Rodar o serviço:

    go run main.go
    

    O programa irá buscar o endereço do CEP especificado no código (CEP 88110798 por padrão) e exibirá a resposta da API que respondeu mais rapidamente.

  • Alterar o CEP:

    • Caso queira testar com outro CEP, basta alterar a variável cep na função main para o valor desejado. Exemplo:
    cep := "88110798" // Altere o CEP aqui
    

Exemplo de Saída

Aqui estão exemplos do que serão exibidos no terminal:

Cenário 1: A API BrasilAPI responde mais rápido

Resposta mais rápida da API BrasilAPI:
CEP: 88110798
Logradouro: Avenida Osvaldo José do Amaral
Bairro: Bela Vista
Localidade: São José
UF: SC

Cenário 2: A API ViaCEP responde mais rápido

Resposta mais rápida da API ViaCEP:
CEP: 88110-798
Logradouro: Avenida Osvaldo José do Amaral
Bairro: Bela Vista
Localidade: São José
UF: SC

Cenário 3: Nenhuma das APIs responde dentro de 1 segundo

Erro: timeout após 1 segundo.

FAQs

Package last updated on 06 Nov 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.