O que é, como são feitas e qual a importância das Web APIs?

A sigla API vem de Application Programming Interface, ou Interface de Programação de Aplicação, que resumidamente é um conjunto de rotinas usadas para interagir com um software. Dessa forma não é necessário entender a implementação ou rotinas internas desse sistema, somente usufruir dos seus serviços.

Com uma Web API um sistema pode comunicar com outro para solicitar um informação ou pedir que ele execute algum processo. É como ter uma empresa que tem vários setores que fazem uma série de tarefas. Cada setor tem suas responsabilidades e se comunica com outro. Isso está integrado no nosso dia a dia, por exemplo quando estamos lendo um artigo na internet temos a opção de curtir pelo facebook ou compartilhar no twitter. O blog e o facebook são sistemas diferentes mas precisam se comunicar.

O objetivo deste artigo é entender como uma API funciona para depois discutirmos a importância desta tecnologia para a web moderna.

post-igor

Como é feita?

Uma Web API em grande parte de seu funcionamento consiste em requisições e respostas. Um sistema pede (vamos chamar de cliente) e o outro responde. Para conseguir essa integração é utilizado o protocolo HTTP, ou protocolo de transferência de hipertexto. O mesmo usado na internet (www), quando você escreve o nome de um site ele faz uma série de requisições te mostrando arquivos (esses que realizam a composição de um site).

Para os dois sistemas conseguirem conversar eles precisam falar na mesma linguagem. Geralmente são usados os formatos JSON (formato baseado em javascript) ou XML (formato organizado por tags). O XML é usado na arquitetura SOAP (Protocolo simples de acesso a objetos), e ele organiza sua comunicação de maneira diferente da arquitetura REST (Transferência de Estado Representacional) que utiliza o JSON. Ambas arquiteturas são usadas para para ter de maneira unificada tecnologias, princípios de organização e mecanismos para lidar com erros. Hoje no que conhecemos como “Web 2.0” (termo usado para descrever uma nova geração de serviços e comunidades na internet) é em sua maioria utilizado o REST. As aplicações que utilizam o REST e seus princípios são chamadas de ‘RESTful’.

post-igor-2

As chamadas em REST podem ser requisições de vários tipos como GET (que tem o objetivo de buscar informações), como DELETE (que tem o objetivo de deletar informações) e muitos outros. Uma chamada rest também pode também, ter em seu interior vários formatos, como o próprio JSON, XML ou até texto puro.

O interessante a se pensar neste exemplo é que quando você pede para deletar este produto, é responsabilidade do serviço deletar ou não e te dar uma resposta adequada. Além disso, como cliente, você precisa interpretar essa resposta para tomar futuras decisões. Ao pedir para deletar o usuário este serviço pode te retornar uma mensagem de sucesso, uma mensagem de que não foi possível apagar esse item porque ele é usado em outros partes do sistema ou que a aplicação simplesmente parou de funcionar. Você como cliente pode tomar então como decisão avisar seu usuário final que ocorreu um erro, fazer mais uma solicitação, e etc.

Endpoints

Os endpoints de uma api (algo que está nas pontas), de maneira simples, são as! rotas pelo qual seu serviço pode ser acessado. Nesta parte é sempre importante ter uma documentação rica para evitar erros e agilizar o desenvolvimento e integração entre as partes, como podemos ver aqui

post-igor-3

APIs? Web services? Middlewares?

API é uma visão mais genérica, ela faz referência a comunicação de dois programas. Eu posso ter, por exemplo, uma solicitação do sistema operacional ou ativar outra aplicação local.

Quando falamos de Web APIs ou Web Services falamos de uma interface projetada para se comunicar via rede. É uma API que usa obrigatoriamente a rede (normalmente usando HTTP) como discutido no tópico anterior.

Os middlewares funcionam como mediadores, é um sistemas intermediário que realiza a comunicação de outros sistemas e também utilizado para mover ou transportar informações e dados entre programas de diferentes protocolos de comunicação.

Qual a importância de uma API?

Divisão de Responsabilidades e liberdade

É comum usar APIs para dividir responsabilidades de um sistema. São comuns termos como “Front-End” e “Back-End” ao desenvolver sistemas web. Normalmente o “Front” lida com toda interação direta com o usuário com foco em interfaces gráficas e experiência, já o “Back” tem as tarefas de comunicação com o banco de dados e processamento pesados. Isso trás uma série de benefícios. Podemos começar falando que em uma equipe você pode distribuir melhor tarefas, otimizando o processo de desenvolvimento. Cada pessoa em cada ponta pode se especializar pois existe foco. Além disso fica mais claro onde estão os gargalos na sua aplicação, você pode simplesmente verificar quanto tempo suas requisições demoram para serem atendidas, ou se a interface está muito lenta para o usuário. Outro ponto importante é que é possível deixar as configurações e processamento pesado de informação para o servidor e tirar a carga de cima do usuário, o mesmo só faz a solicitação. Esse tipo de estratégia se tornou comum com o crescimento de poder de processamento em nuvem.

Hoje em dia é comum que cada linguagem ou framework seja melhor para resolver um problema ou outro. Podemos ter na nossa interface uma linguagem simples e rápida e framework flexível para interagir com o usuário, e no “Back” uma linguagem robusta que cresce bem de acordo com novas necessidades do produto. Com essa liberdade conseguimos sim desenvolver melhores aplicações.

Portabilidade

Levando em conta a discussão do tópico anterior e toda essa questão de modularizar uma aplicação, podemos ver que isso cria uma gama de possibilidades. Podemos tomar como exemplo serviços como Netflix ou Spotify, os mesmos hoje são encontrados em uma gama gigantesca de dispositivos e hardwares. Isso é possível pois você já tem um processamento central dessa informação e depois pode somente criar “pontos” de acesso. Citando o caso do Spotify (serviço de streaming de música), hoje é possível escutar minha mesma coleção de músicas e álbuns no celular, no windows , no macOS e até em um player na internet.

Modularização e envelhecimento

Modularizar um aplicação é sempre uma boa escolha, um grande exemplo disso foi pular da programação estruturada para programação orientada a objetos. Quando usamos APIs, separamos a aplicação em “Front e Back-End” e etc, e criamos essa total separação de responsabilidades ao longo do tempo conseguimos uma manutenção mais objetiva da nossa aplicação, assim como podemos “tirar” e “colocar” um módulo. Se após algum tempo de lançamento de um produto você percebe que precisa melhorar ou atualizar sua interface gráfica, você precisa mexer ou substituir somente seu Front-End, sem impacto no resto da aplicação ou serviços já que eles não estão muito acoplados. Isso tudo pode gerar grandes economias de projeto e reflexos positivos para sua aplicação.

Estratégias de negócio

O uso de APIs pode ser considerado muito mais do que só uma escolha técnica de projeto, e sim vista também como uma estratégia de negócio. Podemos simular um caso de uma startup como pouco dinheiro, e ela só lança uma versão web de seu produto. Se o produto está dividido em “Front” e “Back”, depois ela pode fazer a mesma aplicação para um celular com menos esforço, menos dinheiro e menos tempo já que parte já está pronta. Isso é importante para equipe enxutas. Além disso, se tiver um problema no “Back”, ao consertar isso já vale para ambos sistemas.
Obs.: Para conseguir prover uma boa comunicação entre os sistemas sempre, mantenha uma boa documentação atualizada, versionamento da API e uma boa comunicação entre equipes ou com os cliente.

Comunicação

Como discutido, com o uso de API podem ser feitas aplicações incríveis e mais completas. Se você tem um blog e escreve um texto que fala sobre uma música, você pode adicionar um player do spotify no mesmo, colocar um botão de compartilhar do Facebook e muitas outras interações. Com uma requisição você pode gerar um boleto, enviar dados para o governo, ver uma página web e fazer qualquer outra tarefa que está encapsulada em um software. Isso gera não só benefícios técnicos como abre as possibilidades para pensar em negócios inovadores com grande escalabilidade.

Inovação na sua caixa de entrada

Receba conteúdo relevante. Grátis e sem spam.