Versionamento dos endpoints
See original GitHub issueIsso é uma questão extremamente importante… como lidar com a evolução da interface pública e as breaking changes?
Num módulo gerenciado pelo NPM isso é super fácil, a gestão pelo lado de quem consome isso já vem de graça por conta de como o NPM lida com semantic versioning
… agora, como fazer numa rota pública que inclusive não pode ter versionamento gerenciado por uma conta/perfil como é feito em casos como Pagar.me e Stripe, dado que não teremos esse conceito de conta?
Issue Analytics
- State:
- Created 4 years ago
- Comments:13 (9 by maintainers)
Top Results From Across the Web
As melhores práticas para controle de versões em APIs REST
Quando fazer o Versionamento da sua API. · Se você tiver que remover um recurso da sua API que não está mais sendo...
Read more >(Parte 4) Versionando APIs RESTful | by Thiago Lima
Versionamento pela URL ... Quando versionamos pela URL temos três maneiras de fazer isso: subdomínio, path ou query string. ... Notem que logo...
Read more >API Versioning Do's and Don'ts. It's never too ... - Bits and Pieces
Often when developing our APIs, we tend to ignore versioning because we're literally building the first-ever version of our service.
Read more >Web Services RESTful: Versionamento | Guia Definitivo para
Uma boa API é versionada: Mudanças e novos recursos são implementados em novas versões da API em vez de alterar continuamente apenas uma...
Read more >Versionamento - API - Senior X PLATFORM
Os endpoints da plataforma senior X suportam o versionamento de APIs. ... * Onde: seniorx.version=? identifica a versão da API que se deseja ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Opa @filipedeschamps , eu acho sim legal a estratégia do semantic version, porém na minha visão de usuário fica difícil memorizar qual versão específica que ele usou e deu certo, e qual que ele deveria utilizar, porque ai teríamos seguindo sua ideia:
1.0.0, 1.0.1, 1.0.2 e por ai em diante, a ideia de se utilizar v1, v2, v3 (ou até mesmo 1, 2, 3, porém pode parecer fora de contexto usar números soltos) seria para utilizar uma versão consolidada (sempre a mais recente) de uma versão específica.
O nosso querido GitHub também possui suas apis V3, V4, sei que não da pra se utilizar bem como base, porque as APIS possuem arquiteturas diferentes, a V3 para Rest e V4 para GraphQL (n sei se tem Rest também). Porém até onde vi não utilizam esse versionamento na URL, mas é devolvido um Header com essa informação da versão que ele está usando, que poderia ser útil para aprimorar nossa ideia aqui
Isso aqui eu acho sensacional, facilitaria muito para centralizar essas interfaces.
Então só pra finalizar, sobre o semantic versioning eu acho bom, porém acredito que em um certo momento pode ser mais difícil controlar e manter do que apenas uma versão consolidada (v1,v2…)
É isso, muito bom trocar ideia sobre isso com você, seria bom também sugestões de outras pessoas para melhorar aqui a discussão ! 🚀
Hey @filipedeschamps ,
Sobre o versionamento poderia ser criado um novo parâmetro na API do cep-promise com options para informar qual API ele quer acessar (por default sempre a mais recente), por exemplo:
E na interface do BrasilAPI aceitar um Header com a versão que quer acessar, assim:
Ou, na interface também poderia versionar por meio de rotas, atualmente se usa:
{{URL}}/api/cep/12345678
e poderia ser {{URL}}/api/v1/cep/12345678.
Acredito que ajustes precisariam ser feitos na estrutura do cep-promise para suportar um versionamento funcional, para não descartar a forma que era feita anteriormente.
Deu pra compreender a ideia??