Analogia para leigos: O que é uma API?

Pra que serve? O que faz? O que esperar?

A quem por ventura encontrou esse artigo, vendo meu blog pela primeira vez, quero esclarecer uma questão muito importante sobre quem eu enxergo como público-alvo, ok? Bem, eu escrevo para desenvolvedores... Então o mais provável é que esse artigo seja pouco visualizado.

Então por que está escrevendo, Kiko?

Porque muitas vezes eu preciso responder essa pergunta para pessoas leigas e, toda vez, eu invento uma analogia criativa para exemplificar do que isso se trata. Então esse artigo vem na intenção de auxiliar outros desenvolvedores a encontrar formas de explicar o que é uma API para pessoas leigas na tecnologia. Ou seja, eu vou tentar escrever aqui de forma que todo mundo possa entender, mas não espere isso nos meus outros artigos. Fechado?

Introdução técnica

API é uma sigla para Application Programming Interface, que traduzido do inglês fica Interface de Programação de Aplicação. Serve, basicamente, para externalizar os possíveis comandos de um software sem expor as suas regras de negócio internas, facilitando que outras aplicações tenham certa autonomia para definir quais comandos deseja acionar.

Então é natural entender que os consumidores de um serviço não acessam suas APIs diretamente, mas através de outra interface mais amigável (website, webapp, aplicativo, software desktop, etc).

Dito isso, toda API é voltada para serviços. Não faz sentido desenvolver APIs se não seguir determinados padrões e/ou protocolos. Também não faz sentido pensar em uma sem refletir sobre divisão de responsabilidades, sobre manter as respostas precisas, etc.

Ok Kiko, agora traduz isso tudo pra leigo...

Para exemplificar o que é uma API para uma pessoa que nunca lidou com programação, acredito que a melhor forma de abordar esse assunto seja com analogias, concorda? Então podemos mencionar alguns exemplos da vida real onde pessoas (físicas/jurídicas) atuam como API e consumidor de API.

Agora sim, falando para leigos

O contador

Sabe aquele período do ano que a receita federal libera para a gente declarar o imposto de renda? Bem, algumas pessoas conseguem desenrolar os dados por conta própria. Essas pessoas são as aplicações que não consomem API: executam toda a regra de negócio ali dentro e envia para o servidor correspondente (IRPF).

Mas tem pessoas que tem dados demais e tempo de menos para isso. Elas contratam o serviço de contadores para preencher todo o cadastro e enviar. Os contadores, neste exemplo, representam uma API: eles tem determinados serviços e você contratou especificamente para a rotina de imposto de renda. Alguns até enviam pro servidor correspondente para você, outros apenas preenchem e te dá tudo pronto para enviar.

Mas Kiko, quem vai bater o registro final não é a receita federal? Como o contador poderia ser uma API?

Olha... A pessoa que contratou o contador não precisa entender nada sobre imposto de renda para fazer a declaração. Toda a regra de negócio no processo de cadastro está com o contador, no ato de preencher os campos necessários. Por isso que ele representa uma API.

O exemplo fica ainda melhor quando você contrata o mesmo contador para outros serviços, pois uma API geralmente tem mais de uma rotina desenvolvida para atuar. Uma boa API oferece um grande leque de rotinas para os outros serviços consumirem.

Por exemplo, se o contador gerencia todas as finanças da pessoa, quando você deseja consultar um relatório, você pede pro contador buscá-lo pra você. Isso é uma rotina prevista e é de senso comum desenvolver algo desse gênero em qualquer interface.

Ficou claro? Se não ficou, vamos tentar com outra analogia.

Correios

Sabemos muito bem qual a finalidade desta pessoa jurídica, certo? Fazer entregas. Mas não somente isso, também serve para rastrear ou até mesmo fazer retiradas. Cada um desses verbos que destaquei nesse parágrafo representam uma rotina que poderia muito bem fazer parte de uma API.

Conclusão

Então, no geral, APIs implementam verbos, Kiko?

Exatamente. São ações, rotinas, verbos. O que achar melhor de descrever. A intenção é fornecer recursos claros para que outros possam consumir.

Mas imagina como seria louco navegar num site onde você precisaria acionar cada rotina para ver os conteúdos? Advinhando tudo? Bem, no caso, os sites são desenvolvidos pensando em te apresentar o conteúdo de forma que você consiga navegar sem se perguntar onde está cada coisa. Para compor o conteúdo, eles buscam os dados de algum lugar. Bons sites buscam de uma API, a partir de um desses verbos disponíveis para retornar o que precisa.

Observação técnica: quando eu falo verbo, não estou me referindo a verbo HTTP. Nem sequer mencionei protocolos. Mas é mais fácil de entender associando a HTTP mesmo.

Com isso, deu para entender? Se você é dev, esse artigo te deu algum insight para explicar o que é uma API para um cliente? Se não, te deu uma boa noção de pra que serve uma API? Os benefícios vão muito além de uma boa organização: desenvolver isso nos permite ter um controle maior da regra de negócio, assim como facilitar a contratação de devs ao separar as responsabilidades de front-end e back-end. A evolução ocorre melhor e mais controlada do que sem API.

Caso algo não tenha ficado muito claro, comenta aí que eu tento responder nos comentários e melhorar o artigo, ok?!

E por hoje é só! Curtiu?? Comenta e compartilha! Um artigo bem bacana num final de semana não é pra qualquer um não, hein?

Inté!!