Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Construindo APIs resilientes: práticas de versi...

Construindo APIs resilientes: práticas de versionamento e documentação

Palestra feita no evento TDC Business no dia 19 de Setembro de 2023.

Mônica Ribeiro

September 19, 2023
Tweet

More Decks by Mônica Ribeiro

Other Decks in Programming

Transcript

  1. Agenda O que é versionamento? O que uma API resiliente

    tem a ver com isso? INTRODUÇÃO DOCUMENTAÇÃO PONTOS DE ATENÇÃO E, onde a documentação entra nisso? Essa parte é importante, ein? Boas práticas e ferramentas para usar ao nosso favor. BOAS PRÁTICAS
  2. o que é versionamento? uma forma de diferenciar pontos no

    tempo em que a API muda de uma forma que exige que os consumidores da API modifiquem seu aplicativo.
  3. quando aplicar? MAJOR MINOR PATCH quando impacta em breaking changes

    pode ser ignorado por clientes que não querem usar esses novos recursos. são pequenas mudanças que não afetam códigos. Mudanças (renomear ou excluir) em campos ou rotas. Alteração de payload. Remoção endpoints para corrigir HTTP design. novas features, métodos ou recursos. atualizações de documentações semantic versioning
  4. URI PATH https://apiexample.com/api/v1/categories PRÓS Fácil de usar. Não requer ferramenta

    extra. Estratégias de cache vão se beneficiar. CONTRAS Pode gerar várias versões com alguns conflitos (ambiguidade, cache, manutenção etc). Viola um dos princípios REST.
  5. QUERY STRING PARAMETER https://apiexample.com/api/categories?v=1.1 PRÓS Fácil de implementar e usar.

    Pode definir versão mais recente como padrão. CONTRAS Pode quebrar links permanentes.
  6. curl -H “accepts-version: v1” https://apiexample.com/api/categories PRÓS Não adiciona preenchimento na

    URI Subversões podem ser adicionadas como cabeçalhos. CONTRAS Complexidade ao gerenciar configuração de versões. Difícil de armazenar cache. CUSTOM HEADERS
  7. GET https://apiexample.com/api/categories Accept: application/vnd.exmaple.api+json;version=2 PRÓS Não adiciona preenchimento na URI

    Não quebra tipos de metadados de documentos correspondentes. CONTRAS É necessário uso de ferramentas pra explorar todas versões. Pode se tornar de difícil gerenciamento para clientes. CONTENT NEGOTIATION
  8. melhores práticas ESTRUTURA DE DOCUMENTAÇÃO POR VERSÃO Organize sua documentação

    de forma que cada versão da API tenha sua seção separada.
  9. melhores práticas ESTRUTURA DE DOCUMENTAÇÃO POR VERSÃO DESTAQUE AS DIFERENÇAS

    Organize sua documentação de forma que cada versão da API tenha sua seção separada. Forneça uma seção destacada que descreva as principais diferenças entre as versões.
  10. melhores práticas ESTRUTURA DE DOCUMENTAÇÃO POR VERSÃO DESTAQUE AS DIFERENÇAS

    EXEMPLOS DE MIGRAÇÃO Organize sua documentação de forma que cada versão da API tenha sua seção separada. Forneça uma seção destacada que descreva as principais diferenças entre as versões. Se houver mudanças que afetem a integração de maneira significativa, forneça exemplos claros de migração da versão anterior para a nova.
  11. melhores práticas ESTRUTURA DE DOCUMENTAÇÃO POR VERSÃO DESTAQUE AS DIFERENÇAS

    EXEMPLOS DE MIGRAÇÃO INDICADORES DE OBSOLESCÊNCIA Organize sua documentação de forma que cada versão da API tenha sua seção separada. Forneça uma seção destacada que descreva as principais diferenças entre as versões. Se houver mudanças que afetem a integração de maneira significativa, forneça exemplos claros de migração da versão anterior para a nova. Se uma versão mais antiga estiver prestes a ser descontinuada, destaque essa informação na documentação.
  12. 1 Use uma convenção de nomenclatura clara e não escolha

    números arbitrariamente. Defina um cronograma para versões obsoletas ou permita APIs side-by-side. 2
  13. Tenha documentação clara e detalhada estabelecendo suas diretrizes de controle

    de versão. 1 Use uma convenção de nomenclatura clara e não escolha números arbitrariamente. Defina um cronograma para versões obsoletas ou permita APIs side-by-side. 2 3
  14. Tenha documentação clara e detalhada estabelecendo suas diretrizes de controle

    de versão. Faça adições compatíveis com versões anteriores. Seus clientes agradecerão! 1 Use uma convenção de nomenclatura clara e não escolha números arbitrariamente. Defina um cronograma para versões obsoletas ou permita APIs side-by-side. 2 3 4
  15. EXTRA Automatize a segurança das suas APIs. Você pode ficar

    tranquilo sabendo que sua API está protegida com automação.
  16. Obrigada pelo seu tempo Nos vemos em breve! :) 21/09

    Trilha Microsservices (14:10) Além do olho mágico: monitorando a integridade dos microsserviços com o OpenTelemetry 21/09 Trilha Arquitetura Java (17:15 às 17:50) Decisões arquiteturais: o que se encaixa no meu projeto? 20/09 Trilha Design de Código (11:15) Transformando o caos em clareza: o poder da refatoração