O versionamento de APIs é uma estratégia para implementar rapidamente mudanças e novas funcionalidades em seu negócio.
O ASP.NET Core WebAPI possui suporte nativo para versionamento de APIs. Além de facilitar a implementação, este suporte entrega outras facilidades como informar as APIs obsoletas via Header do Response e também expor informações importantes para a documentação da API.
Por que você deve versionar sua API?
Todos os desenvolvedores precisam entender que não existe condições de uma empresa evoluir e ser competitiva no mercado se ela não conseguir entregar rapidamente as soluções que o mercado precisa! Mudanças ocorrem muito rápido e você é o responsável por entregar soluções que permitam serem adaptadas rapidamente aos novos cenários.
Gostaria de contar uma história que aconteceu recentemente comigo (fatos 100% reais). No mês passado eu encerrei uma parceria de muitos anos com uma empresa de software que fornecia soluções para um de meus negócios.
De forma amigável eu enviei um e-mail para o CEO avisando de minha decisão, agradecendo pela parceria e desejando que a empresa dele não parasse no tempo devido aos processos burocráticos de mudanças que eu e os demais clientes enfrentavam.
O CEO me respondeu com um e-mail enorme e triste, contando das dores em atender mudanças simples, que 3 anos atrás havia investido praticamente todo o budget da empresa para desenvolver um software que hoje não suporta novas implementações sem um processo enorme de mudanças e burocracias internas.
O desenvolvedor além de entregar software, também é parte responsável pelo sucesso ou fracasso do negócio.
Como o versionamento de APIs pode ajudar o seu negócio a ser mais competitivo
Vamos supor que você entregue um conjunto de funcionalidades em sua API e com o passar do tempo novas mudanças e funcionalidades são exigidas, porém implementar estas necessidades em seu código resultam em breaking changes no lado do cliente.
Você pode considerar tudo que tem entregue até hoje como a V1 da sua API e implementar as novas funcionalidades como uma V2, sendo assim:
Os clientes que precisam urgentemente das novas funcionalidades poderão ser atendidos rapidamente por sua empresa, basta implementar a V2 da sua API. Os clientes que não possuem tanta necessidade de mudança continuam usando a V1, porém passam a receber o aviso que esta API está obsoleta e será desativada em algum tempo (por exemplo 6 meses).
Você passa a atender o negócio de forma ágil, facilitando a vida dos clientes que precisam rapidamente das novas funcionalidades e sem prejudicar aqueles que não precisam.
Quando é hora de versionar minha API?
Considere o versionamento da sua API necessário toda vez que uma mudança resultar em breaking changes do lado do cliente.
E claro, para prever com exatidão os breaking changes é necessário escrever uma diversidade de testes de integração que simula os inúmeros cenários de consumo da sua API do lado do cliente.
Como implementar o versionamento da minha API?
Esta é a parte mais fácil 🙂 O ASP.NET Core dá suporte nativo ao versionamento, além de facilitar muito na documentação (via Swagger por ex).
Documentação oficial:
https://github.com/Microsoft/aspnet-api-versioning
Assista esta aula gratuita do meu curso REST com ASP.NET Core WebAPI
O desenvolvedor.io é a minha nova plataforma de cursos online e já temos mais de 12 cursos anunciados, o curso sobre ASP.NET Core Web API está 100% entregue e possui diversas aulas gratuitas para você experimentar e aprender um pouco mais com nosso conteúdo.
Para aprender a implementar na prática o versionamento de APIs assista esta minha aula gratuita:
Espero que aproveite este conteúdo e comece desde já a planejar e se preparar para esta estratégia que pode ser um grande diferencial em seu negócio.
Vamos continuar enriquecendo o assunto utilize os comentários abaixo e deixe sua contribuição 🙂
Excelente artigo Eduardo!
Realmente no .NET Core as coisas ficaram muito mais fáceis.
Temos um projeto em ASP .NET MVC 5 e apanhamos para criar APIs e também algo parecido com Middleware.
Se conhecer algum material sobre Roles e Claims para controle de acesso e puder recomendar eu agradeço de coração.
Estou preparando a carteira para comprar os três cursos de Arquitetura de Software.
Abraço!
Muito bom, é verdade deste o inicio do projeto,tem que pensar escalonamento da Api e usar o versionamento.