Skip to content

Removendo Pontos facultativos de dentro do endpoint de feriados nacionais#463

Closed
LucasBerce71 wants to merge 7 commits intoBrasilAPI:mainfrom
LucasBerce71:fix-holidays
Closed

Removendo Pontos facultativos de dentro do endpoint de feriados nacionais#463
LucasBerce71 wants to merge 7 commits intoBrasilAPI:mainfrom
LucasBerce71:fix-holidays

Conversation

@LucasBerce71
Copy link
Copy Markdown

O que foi feito:

Haviam feriados que são considerados ponto facultativo (Exemplo: Carnaval e Corpus Christi) dentro do endpoint que retorna apenas feriados nacionais.

Motivo da alteração:

O endpoint de feriados nacionais deve retornar apenas os feriados que de fato são considerados nacionais.

Arquivos modificados:

  • services/holidays/index.js;

@vercel
Copy link
Copy Markdown

vercel bot commented Feb 9, 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 Aug 6, 2023 4:17pm

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Feb 9, 2023

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
2.5% 2.5% Duplication

@lucianopf
Copy link
Copy Markdown
Member

lucianopf commented Apr 20, 2023

Infelizmente considero a proposta um pouco perigosa pq apesar de entender seu argumento essas 2 datas são consideradas feriados bancários e temos alguns clientes integrados na API que dependem dessa informação =/

image
https://feriadosbancarios.febraban.org.br/

Infelizmente eu voto por manter como está hoje 😢

@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
1.9% 1.9% Duplication

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Aug 6, 2023

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
1.8% 1.8% Duplication

@lucianopf
Copy link
Copy Markdown
Member

Olá @LucasBerce71! A distinção entre feriados nacionais e pontos facultativos é importante, mas o PR tem um erro:

Corpus Christi é um feriado nacional estabelecido pela Lei 9.093/1995 (Art. 1º, inciso III: "o dia de Corpus Christi"). Não é ponto facultativo — é um feriado oficial por lei federal. Este não deve ser removido.

Carnaval: A terça-feira de carnaval é tecnicamente um "ponto facultativo" no nível federal, não um feriado nacional por lei. Então a remoção do Carnaval pode ser justificada dependendo do escopo do endpoint.

Antes de prosseguir, seria útil esclarecer:

  1. O endpoint deve retornar apenas feriados legais ou também pontos facultativos tradicionais?
  2. Se incluir pontos facultativos, Carnaval deveria ter um type diferente (ex: 'optional')

O PR atual remove Corpus Christi indevidamente. Se quiser corrigir, mantenha Corpus Christi e avalie apenas o Carnaval.

@lucianopf
Copy link
Copy Markdown
Member

Olá @LucasBerce71, a discussão sobre quais datas são "feriados nacionais" vs. "pontos facultativos" é válida! Mas este PR quebra compatibilidade retroativa, o que é um critério bloqueador do projeto.

Bloqueador: quebra de compatibilidade retroativa

O endpoint /api/feriados/v1/{ano} atualmente retorna 12 feriados, incluindo Carnaval e Corpus Christi. Milhares de sistemas em produção que consomem este endpoint esperam esses feriados no retorno. Remover dados que existem hoje quebra esses sistemas.

O princípio da BrasilAPI é: nunca remover campos ou dados de endpoints existentes — criar uma nova versão em vez disso.

Caminhos possíveis:

  1. Novo endpoint v2 que retorna apenas os feriados pela classificação mais restrita de "feriados nacionais", sem os facultativos. O v1 permanece inalterado.

  2. Campo type no v1 (adição, não remoção) que já distinga national de optional, permitindo que consumidores filtrem. Mas o Carnaval e Corpus Christi já têm "type": "national" atualmente, então isso precisaria de uma migração cuidadosa.

Nota legal: Corpus Christi é feriado nacional por Lei (Lei 9.093/1995), então sua classificação como "facultativo" também pode ser contestada dependendo da interpretação. O Carnaval (segunda e terça) é amplamente tratado como ponto facultativo federal.

Se quiser avançar com a separação, a melhor abordagem é criar v2 do endpoint de feriados com a distinção clara — PR #552 e #558 já exploram essa direção para feriados estaduais/municipais.

@lucianopf
Copy link
Copy Markdown
Member

@LucasBerce71, obrigado pela contribuição e pela discussão sobre pontos facultativos!

Estamos fechando este PR porque a direção que escolhemos é aditiva — em vez de remover Carnaval e Corpus Christi, vamos adicionar um query param ?type=national|optional|all ao endpoint existente para que consumidores possam filtrar. Essa abordagem está sendo desenvolvida no PR #677.

Assim mantemos compatibilidade retroativa (o default continua retornando tudo) e damos aos consumidores controle sobre o que querem receber.

Valeu pela discussão que ajudou a definir essa direção! 🙏

@lucianopf lucianopf closed this Apr 14, 2026
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