Versionamento de APIs com WebAPI + Vídeo Aula

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 🙂

2 pensou em “Versionamento de APIs com WebAPI + Vídeo Aula

  1. 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!

Os comentários estão fechados.