Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API não está no padrão da RFC 7231 #33

Open
davi5e opened this issue Apr 17, 2021 · 4 comments
Open

API não está no padrão da RFC 7231 #33

davi5e opened this issue Apr 17, 2021 · 4 comments

Comments

@davi5e
Copy link

davi5e commented Apr 17, 2021

Por algum motivo, a API da Gerencianet não está no padrão da RFC 7231 e, entre outras coisas, costuma retornar códigos de status dentro da resposta, inclusive misturando 200 do HTTP com códigos de erro customizados...

Outro problema é que o backend da Gerencianet em si só entende 200 como resposta de suscesso na URL de notificação e o status 204 No Content são considerados como erros no painel da plataforma...

A padronização da API de acordo com a RFC e possível criação de webhooks autenticados seriam ideais (podendo enviar os dados do endpoint GET /v1/charge/:id diretamente ao invés da forma atual de mandar notification).

@guilhermecotaGn
Copy link
Member

Oi @davi5e, tudo bem? 😄
Levarei sua sugestão para a equipe analisar. Tendo uma posição, lhe dou retorno.

Desde já, obrigado!

@davi5e
Copy link
Author

davi5e commented Apr 26, 2021

Oi @guilhermecotaGn ,

Teoricamente, fazer a API compatível com a RFC exigiria parar de responder 200 quando existe um erro (atualmente no campo code). O ideal seria alguma coisa no range do 400 para indicar erro.

Outro comportamento que notei é que quando existe um problema no argumento da URL, a resposta é 500 o que teoricamente também estaria errado (não é um erro interno se a URL veio errada...).

O que mais chamou a atenção foi o servidor da Gerencianet não entender respostas 204 no webhook que envia o token.

Além disso, enviar um token para que o client insira essa informação numa chamadas subsequente poderia ser evitado se o webhook fosse autenticado. Parece já ser assim na API do PIX, por exemplo. Nossa solução foi assinar a URL do webhook para garantir que apenas a Gerencianet consegue completar a comunicação do token...

A proposta de adequação à RFC teria grandes impactos na API de vocês, mas pequenos ajustes poderiam ser feitos (como por exemplo aceitar 204 na resposta).

Seja como for, é legal saber que o pedido será analisado. Ficaria mais simples de fazer integrações se tudo fosse no padrão internacional do HTTP 1.1, mas como eu mencionei as mudanças seriam significativas.

@guilhermecotaGn
Copy link
Member

Muito bem pontuado, @davi5e.

Sem dúvidas, a adequação à RFC faz com que a API siga em conformidade com a semântica de solicitação e resposta dos métodos HTTP/1.1, padrão que já temos aplicado na API Pix, conforme mencionou.

Referente à API de cobranças (boletos, carnê, cartões), já estamos com o projeto de refatoração da API para esta melhoria, e tentaremos o mais breve possível liberar esta atualização para facilitar a integração, seguindo os padrões.

Pontuo que estamos sempre abertos para sugestões, melhorias e agradeço mais uma vez por sua contribuição!

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

No branches or pull requests

2 participants