Ao tratar de APIs, boa parte da conversa sobre contratos é centrada na pergunta: construímos a API de forma correta? Utilizando o contrato como base para compreensão da API, podemos não apenas responder essa pergunta, mas outra mais elusiva: construímos a API certa?
Em palestra no APICON, Alianna Inzana, API Lifecycle Products Leader – SmartBear, discute como especificações de API e contratos de consumo podem formar a base para colaboração entre equipes na entrega de serviços de qualidade.
Um dos pontos explorados por Alliana é o processo de construção de uma API, supondo que o desenvolvedor seguiu os princípios de design first. Ela explica as principais formas do design first pode dar errado e como usar contratos para dar foco a colaboração até solucionar o problema.
Segundo Alianna o primeiro e mais óbvio desafio está no fato de usar a abordagem design first. Quando passamos de uma abordagem code first para design first, o contrato, é a solução para essa transição.
“A incursão inicial no design pode ser centralizar a gestão do contrato, poderia ser o princípio acordado de que o contrato será a fonte da verdade, não apenas para a descoberta e documentação da API, mas também para testes e validação da API”, comenta Alianna.
Outro desafio é um pouco mais abstrato, de acordo com Alianna. Ela deixa claro que design first não é de fato o mesmo que contract first. Não quando consideramos o esboço inicial da especificação completamente e totalmente imutável. Trata-se de um contrato entre provedores e consumidores, ou seja, nuca pode mudar. Dessa forma, para que a abordagem design first seja eficaz, para entregar a promessa, o design antecede a informa a especificação.
Alianna também apresenta algumas questões envolvendo os consumidores de APIs. Estes usam as APIs de formas não compartilhadas pelo desenvolvedor e até podem causar problemas de segurança, até porque, segundo Alianna “uma API não hackea a si mesma”. Além disso, consumidores das APIs podem ser anônimos e desconhecidos.
De acordo com a API Lifecycle Products Leader , “o design deve ser uma colaboração contínua que é facilitada pela especificação confirme as equipes iteram”. Para Alianna a especificação pode ser a ponte entre as abordagens design first e code first.
Quer entender um pouco mais sobre a palestra? Vem conferir o vídeo!
Este artigo foi escrito por Alianna Inzana e publicado originalmente em Prensa.li.