“API Design First“ é uma abordagem de desenvolvimento de software onde o design da API (Interface de Programação de Aplicativos) é feito antes da implementação do código.
Em outras palavras, a primeira etapa é definir e projetar a interface da API - como as diferentes partes do software se comunicarão entre si - usando uma linguagem de descrição de API como OpenAPI ou RAML. Somente após a API ser projetada e aprovada, a equipe começa a escrever o código que implementa essa interface.
A vantagem dessa abordagem é que ela incentiva a pensar cuidadosamente sobre como a API será usada e como ela deve ser estruturada antes de começar a codificar. Isso pode levar a APIs mais bem projetadas, com melhor usabilidade e menos necessidade de refatoração posterior. Além disso, permite que as equipes de front-end e back-end trabalhem em paralelo, uma vez que o contrato da API já foi acordado.
Para conseguirmos chegar a um contrato que atenda todas as partes, podemos seguir esse passo-a-passo:
Processo ADDR
ADDR é um acrônimo que se refere a um processo comum na escrita e design de APIs. Ele é composto pelas seguintes etapas:
Alinhar: Garante o alinhamento entre os diferentes escopos envolvidos, como negócio, produto e tecnologia, fechando um entendimento de quais são os resultados esperados para o projeto.
Definir: Fase onde são mapeados os requisitos do cliente em capacidades digitais que definirão a necessidade de uma ou mais APIs para entregar os resultados esperados.
Desenhar: Aqui o design da API é feito, procurando o melhor API Style para os resultados esperados pelas partes envolvidas
Refinar: Nessa fase é coletado o feedback dos desenvolvedores através de testes, prototipações e escrita de documentação
Fases para escrever um contrato de API
Existem 7 fases, segundo James Higginbotham, para que o contrato de uma API seja feito:
- Identificar capacidades digitais. identificar as necessidades do cliente e resultados esperados, incluindo as respectivas capacidades digitais.
- Definir atividades. expandir capacidades digitais para incluir um entendimento único e claro das atividades necessárias para atingir os resultados esperados usando sessões colaborativas de design.
- Identificar fronteiras da API. validar se já não existe alguma API que pode ser reutilizada e, no caso de necessidade de novas APIs, quais deverão ser criadas.
- Modelar Perfis de API. definir através de sessões colaborativas de design qual o melhor perfil de API a ser utilizado, incluindo recursos e operações.
- Design de Alto nível da API. Escolher um ou mais Perfis de API que serão usados e documentar os elementos de design de alto nível envolvidos.
- Refino do Design. Incluir feedback dos consumidores da API usando técnicas que busquem a melhor experiência para o desenvolvedor.
- Documentar a API. finalizar a documentação da API, incluindo materiais para onboarding, testes e formas de acelerar a integração.
Nos próximos textos aprofundarei em cada uma das etapas listadas acima.