Skip to content

feat: Adição de funcionalidade de busca para feriados municipais, estaduais e nacionais.#555

Open
LuisLourenco1 wants to merge 8 commits intoBrasilAPI:mainfrom
LuisLourenco1:feat/holidays
Open

feat: Adição de funcionalidade de busca para feriados municipais, estaduais e nacionais.#555
LuisLourenco1 wants to merge 8 commits intoBrasilAPI:mainfrom
LuisLourenco1:feat/holidays

Conversation

@LuisLourenco1
Copy link
Copy Markdown

Issues relacionadas: #380 e #541

Descrição

A issue #380 referente ao repositório Brasil API visa discutir a possibilidade de implementação de uma integração de informações de feriados municipais na API, facilitando assim a realização de possíveis cálculos gerais.

A issue #541 por sua vez abre ideia para a necessidade de se desenvolver a funcionalidade de listar feriados por estado, possibilitando assim acompanhar as datas de feriados em um escopo geográfico maior do que os apresentados na issue #380.

Resolução

Requisição de dados
Para a implementação do que foi discutido nesta Issue, foi realizado uma recuperação de informações a partir do repositório feriados-brasil, presentes no endereço https://github.com/LuisLourenco1/feriados-brasil, que é mantido por nós mesmos (Contém os feriados de 2010 até 2025, onde deve atualizado antes de 2025). A partir da recuperação das informações contidas neste repositório, foram realizadas requisições HTTP para coletar as informações dos feriados municipais, expressas em arquivos JSON.

Implementação e Integração no Brasil API
Rotas:
/api/feriados/v2?year=2023
Retorna os feriados nacionais de 2023.
Caso o ano não seja passado, será considerado o ano atual.

/api/feriados/v2/ms?year=2022
Retorna os feriados do estado de Mato Grosso do Sul em 2022.

/api/feriados/v2/ms/trêslagoas
Retorna os feriados da cidade de Três Lagoas no ano atual

@vercel
Copy link
Copy Markdown

vercel bot commented Nov 30, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
brasilapi ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 30, 2023 10:49am

@sonarqubecloud
Copy link
Copy Markdown

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@lucianopf
Copy link
Copy Markdown
Member

Bom dia mestre, primeiramente muito obrigado pela contribuição! ❤️

Eu confesso que to num dilema sobre a decisão de como organizar essa rota =S

Hoje o recurso é feriados por ano e se a gnt fosse seguir pela mesma linha eu esperava que year continuasse sendo parametro de URL e state e city ser querystring só que se a gnt seguir nesse caminho eu fico no dilema se ao fazer a request sem parametro de estado e cidade a gnt talvez devesse retornar tudo referente ao ano (incluindo feriados munincipais e estaduais)
O problema dessa abordagem é que os casos de uso de quem integra podem ser bem diferentes do que a gnt ta imaginando e pra uma plataforma financeira é importante apenas feriados nacionais pra saber quando podem realizar operações e ao mesmo tempo podemos ter plataformas escolares integradas e essas por sua vez devem se importar com calendários locais pra saber quando não vão ter aulas.

Da forma que vc propos fica bem claro que se vc não pedir feriados estaduais ou munincipais estamos falando exclusivamente sobre feriados nacionais mas tem uma mudancinha maior na estrutura da rota especialmente pensando em REST com multiplos níveis 🤔

@steniomoraes
Copy link
Copy Markdown

Salve pessoal, tudo jóia?

Alguma previsão para a release? Grato!

@sibelius
Copy link
Copy Markdown

aqui tem todos os feriados por municipio https://feriadosbancarios.febraban.org.br/Municipais/Listar

@lucianopf
Copy link
Copy Markdown
Member

Olá @LuisLourenco1, obrigado pela contribuição! Mas há um problema fundamental com a fonte de dados.

Bloqueador: usa repositório GitHub pessoal como fonte de dados

const url = `https://raw.githubusercontent.com/LuisLourenco1/feriados-brasil/master/dados/...`;

A BrasilAPI não pode depender de repositórios GitHub pessoais como fonte de dados porque:

  • O repositório pode ser deletado, renomeado ou tornado privado a qualquer momento
  • A precisão e manutenção dos dados não é garantida por uma fonte oficial
  • Em produção, isso quebraria todos os usuários do endpoint

O mesmo problema foi apontado no PR #492 — é um critério bloqueador do projeto.

O que aceitar como fonte de dados:

  • APIs públicas de órgãos governamentais (IBGE, Planalto, BACEN, etc.)
  • Dados hardcoded diretamente no código (como o services/holidays/index.js atual para feriados nacionais, ou como o PR feat: add statewide holidays #552 faz para feriados estaduais)

Para feriados municipais, como não há API oficial pública e gratuita, a opção seria hardcodar os dados diretamente no projeto — o que é trabalhoso mas sólido.

Além disso:

  • O .eslintrc.js não deve ser modificado para desabilitar regras globalmente só para este PR
  • Os testes provavelmente usam CommonJS e precisam ser reescritos com Vitest imports

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants