#7 — API Lifecicle?, API First? WTF??

Marcelo do Amaral
DevOnTheBit
Published in
4 min readJan 20, 2017
Como assim? ciclo de vida?

Olá Dev’s. Tranquilo? hoje vamos parsear essa entrada aqui.

Primeiro tenho que agradecer a quantidade de leitores do ultimo artigo, foi de longe o mais lido de todos os que eu já produzi (i’m a data geek) … obrigado mesmo.

Bem o meu objetivo principal é chegar na parte de API Design ❤, porém, antes de chegar no “dito cujo”, devo abrir o mapa e apontar onde isso se encontra no ecossistema. Acredito (pelo menos não por enquanto) eu não devo ir muito fundo (até por que existem partes que eu teria que dar uma atenção maior por conhecer apenas a superfície), já que um ecossistema completo não é sustentado por um único profissional, mas sim um time, o que vem a seguir é apenas um resumo do resumo do resumo do resumo …

Convencionou-se a dividir o ecossistema de api’s em 4 partes principais (diga-se condicionou-se, pois por ai podem existir ecossistemas com mais passos).

1 — Estágio de Análise
2 — Estágio de Desenvolvimento
3 — Estágio de Operação
4 — Estágio de Retirada

#1 Estágio de Análise

Geralmente é onde os Analistas de negócio vão dar aquela conversada “marôta” para parear as ideias, onde se definem os objetivos de negócios da API, monetização, tipo da API(privada, publicas ou mista), retorno financeiro estimado e etc … enfim, onde tudo começar.

#2 Estágio de Desenvolvimento

Bem, aqui é que vamos estar na maioria das postagens, aqui é onde os negócios de fato vão provar os seus objetivos, é onde se definem os requerimentos técnicos e oportunidades, planos de desenvolvimento, design, construção e teste … o playground dos devs ❤.

#3 Estágio de Operação

Aqui já temos o produto funcional e operando, sabe quando rolam aqueles Hackathons que você fica, “poxa =( queria tanto participar”, pois é, muito provavelmente a API em questão está nesta fase, é quando aquele evangelista vai mostrar a nova API, é quando os analistas de negócio podem monitorar as atividades para poder verificar se os seus objetivos de negócio foram atingidos.

#4 Estágio de Retirada

É nesse estagio que as API’s são versionadas, depreciadas, e se por acaso deixem de fazer sentido ao negócio, são “desligadas”. #RIP

Sei que fui muito generalista e pouco detalhista, mas o objetivo era apenas uma visão geral, pois nosso objetivo é desenvolvimento na maior parte do tempo =).

Mas como eu devo começar a pensar em API’s?

API Fist

Por mais que isso pareça coisa de outro mundo, acredite, não é, eu pessoalmente encaro a API first como um misto de negócios e técnico, vou te dizer o por que:

Se você não sabe exatamente se o seu negócio cabe nesta estratégia, você pode utilizar uma técnica que provavelmente está presente no seu dia a dia como empreendedor, o BMC ou nesse caso AMC: (detalhes na referência).

Para maiores informações do modelo: http://nordicapis.com/api-model-canvas-developer-experience-is-a-key-ingredient-of-quality-apis/

O AMC te direciona da melhor forma a um MVP efetivo e sustentável, isso não é Silver Bullet, mas é mais uma ferramenta para ajudar.
Conseguiram enxergar o business? =)

Já que estamos pensando em negócios baseados na API como produto, vamos imaginar que isso deve ser desenvolvido, ai entra um “carinha” que já está presente a muito tempo na vida de que lida com SOA, o Contact-first design ou Design-first.

No contact-first design, você vai iniciar o desenvolvimento definindo o contrato, para não ficar uma leitura muito “pesada”, vou exemplificar da seguinte forma:

Imagine que você tem que criar um sistema e esse sistema precisa ser SPA(Single Page Application) e/ou Mobile App (IOS/Android), pois bem, depois de passado o estágio de análise, será definido o contrato, isto é, define-se os endpoints e o seu comportamento (atualmente as ferramentas mais utilizadas são o swagger e o RAML), depois de definir este contrato são gerados SDK’s para o Front(SPA e/ou Mobile), os endpoints(mockados) para os servers(Node, Spring, Django etc etc…), e a documentação estática e/ou a documentação interativa que servirá para ambas as equipes, assim separando de maneira sólida os escopos de desenvolvimento.

Como eu disse, API fist é uma abordagem de negócios e técnica ao mesmo tempo. Ainda há muuuuuuito o que se falar em relação a ela, porém aqui acredito que expliquei apenas 0,000001%(estou muito otimista em relação a esse número), do que a abordagem é na realidade, eu sempre disponibilizo nas referencias links que complementam o assunto.
Caso queiram mais artigos direcionados a negócio, por favor avisem que eu vou providenciar(Não que eu seja um especialista, porém gosto de interagir compartilhando algo útil).

Gostaria de agradecer os guerreiros e guerreiras que chegaram ao final desta missão (ficou curtinha né? HAHAHA), quando formos falar de API design, focarei na ferramenta swagger, e descobriremos que desenvolvedor também faz documentação.

Até o próximo post!, o que posso dizer a vocês é, que atravessem a rua olhando para os dois lados, em cima da faixa de pedestres e acreditem nos métodos, pois tecnologias vem e vão o tempo todo.

Beijos de Luz ❤

Referencias:
https://apigee.com/about/blog/developer/design-first-approach-building-apis-swagger

http://sensedia.com/blog/apis/o-que-e-uma-estrategia-api-first/
https://en.wikipedia.org/wiki/Design_by_contract
http://wso2.com/library/articles/soa-contract-first-design/
http://nordicapis.com/api-model-canvas-developer-experience-is-a-key-ingredient-of-quality-apis/
https://www.amazon.com/API-Lifecycle-Agile-Process-Managing-ebook/dp/B011ACJ368/

--

--

Marcelo do Amaral
DevOnTheBit

Utópico por maioria de votos. -Spica, α Vir-, Chaotic Good, Dog Lover, OOP curious.