Mas afinal… o que é uma API?

Flávia Silva
labmm4a
Published in
6 min readJul 27, 2021

De certeza que já fez login num website ou aplicação utilizando a sua conta do Facebook ou Google, que já utilizou um mapa numa aplicação qualquer e quem nunca foi ver a meteorologia disponibilizada no ecrã inicial do nosso telemóvel? Tudo isso são serviços fornecidos através de API.

Ao longo do tempo as API têm ganho cada vez mais popularidade entre os programadores. Hoje em dia, são um elemento essencial na construção de websites dinâmicos e mesmo sem nos apercebermos, estão em todo o lado. Desde serviços de autenticação, a dados meteorológicos e sistemas de pagamentos ou de localização.

API é a sigla para Application Programming Interface, um sistema que pode ser visto como um intermediário que permite o acesso a certos dados e recursos específicos de uma aplicação. O seu principal intuito é trocar dados entre diferentes sistemas, normalmente para tornar mais fácil e automatizar processos que necessitariam de grande atenção e trabalho por parte dos programadores. Através das API é possível estabelecer toda a conectividade entre aplicações e conteúdos (Figura 1). Um utilizador pode utilizar vários recursos de várias aplicações utilizando apenas uma, sem ter de saltar de app em app.

Figura 1 — Representação simplificada das conexões estabelecidas pelas API (fonte:https://www.mulesoft.com/resources/api/what-is-an-api)

Em quê que uma API me pode ajudar?

Atualmente, é difícil encontrar um produto que seja desenvolvido sem a integração de algum tipo de API. Na criação de grandes projetos/produtos, o seu uso é bastante pertinente, permite-nos utilizar vários recursos e sistemas já prontos, que foram criados por equipas especializadas, não havendo assim necessidade de nos preocuparmos com erros ou sessões de testes. Tem também especiais vantagens para os utilizadores, pois permite que de forma simplificada e sem esforço, utilizem vários recursos de várias aplicações e serviços. Podemos pensar numa interação entre um utilizador com uma API como a interação de uma pessoa com um elevador: se eu estou no 1º andar e desejo ir para o 6º, basta chamar o elevador, entrar, pressionar o botão com o número seis e o elevador leva-me até lá. Acontecem enumeras operações por detrás daquele clique no botão, no entanto o utilizador não faz ideia nem precisa de saber os procedimentos necessários para ter aquilo que deseja.

Dito isto, as API podem ter várias pontos a seu favor para decidirmos se as utilizamos ou não, nomeadamente:

  • Segurança: o uso de uma API permite um maior controlo sobre quem acede ou não à informação do sistema. A API consegue identificar de onde e quem tenta aceder a um certo sistema através do pedido de requisição, no entanto isto não acontece se a API for pública, pois tem livre acesso e não necessita dessa informação para fornecer dados. Uma das suas grandes preocupações é também o tipo de dados que é disponibilizado, são utilizados protocolos para que apenas sejam enviados os dados necessários para cada requisição de modo a proteger os restantes dados do sistema. Pode também ser utilizado um sistema de encriptação em alguns pedidos de dados privados como passwords ou alguns dados privados.
  • Facilidade e compatibilidade: permite a integração de sistemas que à partida poderiam não ser compatíveis e, que caso fossem implementados sem API iriam demorar imenso tempo e iriam requerer grande esforço por parte de uma equipa de programadores. Assim possibilita uma maior rapidez na troca de informações, economia de tempo e recursos.
  • QA — quality assurance (testes e manutenção): ao utilizarmos várias APIs no desenvolvimento de um projeto, podemos fragmentá-lo em vários. Isso permite fazer testes muito mais fáceis, orientados ao objetivo de cada API. Por isso, quando surge um problema é mais fácil localizá-lo e resolve-lo comparativamente a um projeto onde temos todo o código localizado no mesmo repositório.

Só existe um tipo de API?

A resposta é não. Existem vários tipos, por exemplo, o sistema operativo dos computadores utiliza uma API para as aplicações que utiliza. Quando tentamos abrir um ficheiro, a aplicação que está a ser usada para o abrir, faz um pedido ao sistema operativo para que este lhe abra o ficheiro pretendido.

Temos também a Web API que está aplicada na camada da internet e serve de “mensageiro” entre o cliente e o servidor. O cliente vai fazer um certo pedido ao servidor, o servidor vai receber essa mensagem graças à Web API e de seguida vai responder com a devida informação que pode, por exemplo, mostrar, eliminar ou adicionar dados a uma certa base de dados.

Comunicação cliente-servidor através de uma Web API

Toda esta comunicação é feita através do protocolo HTTP — Hypertext Transfer Protocol. Estes protocolo é responsável pelas operações básicas de manipulação de dados. Por exemplo, para fazermos uma requisição no nosso browser temos de indicar o protocolo, que neste caso é o HTTP, de seguida colocamos o host para identificar para onde vai o pedido, seguido do caminho para aquilo que queremos para a informação saber para onde seguir no servidor. Caso o pedido tenha sido mal efetuado pelo cliente (caminho mal feito, por exemplo) o servidor envia uma resposta de erro a informar que algo não correu bem, o mesmo acontece caso haja algum problema com o servidor que não lhe permita enviar uma resposta ao pedido feito.

Exemplo de um request no browser

Podemos ainda adicionar uma query string para indicar o que queremos fazer através de alguns métodos que vão ser explicados já a seguir.

Esses métodos são utilizados pelas REST API.

As REST (Representational State Transfer) API, são uma convenção que ajuda a contruir e permite uma fácil comunicação entre o cliente e o servidor. As REST API permitem a utilização de operações CRUD (Creat, Read, Update, Delete), um conjunto de princípios básicos de HTTP utilizados para criar, ler, atualizar e eliminar dados — os HTTP methods. Estes são:

  • POST: criar dados no servidor

Este método permite a criação de novos recursos num certo conjunto de dados. Este método é considerado seguro porque a informação passada nunca é armazenada em cache, não permanece no histórico do browser, para além disso, não têm restrições quanto ao comprimento dos dados.

  • GET: leitura de dados no host

O pedido GET é enviado no url e a informação passada pode ficar armazenada em cache e no histórico pelo que nunca deve ser utilizado para manipular dados confidenciais e privados, têm ainda restrição no comprimento de dados.

  • DELETE: eliminar dados

Este método serve exclusivamente para eliminar o recurso especificado a quando o pedido.

  • PUT: atualizar registos

É utilizado para enviar dados ao servidor para criar ou atualizar um recurso. Ao contrario do método POST, o PUT apenas vai efetuar a criação ou atualização dos recursos uma única vez independentemente das vezes que solicitarmos.

O que posso fazer mais com uma API?

As Web API e as REST API são serviços que nos permitem usufruir de dados de terceiros. Temos ainda API locais que são criadas para operar em sistemas operativos ou serviços middleware (software de um sistema operativo que permite a comunicação e gestão de dados entre aplicações distintas) para programas de aplicações. E temos ainda as APIs do programa são baseadas na tecnologia de chamada de procedimento remoto (RPC) que faz com que um componente do programa remoto pareça ser local para o resto do software. APIs de Arquitetura Orientada a Serviços (SOA), como APIs da série WS da Microsoft, são APIs de programa.

A ubiquidade das API

O termo API é uma incógnita para muita gente e uma mais valia para outros tantos. No entanto, ninguém consegue fugir à sua utilização mesmo sem nos apercebermos. É uma tecnologia que está presente em praticamente todos os produtos digitais que utilizamos. Para quem não é dado às tecnologias, facilita o seu uso; para quem tem de as desenvolver e criar permite que esse processo seja feito de uma maneira mais simplificada e inteligente.

Referências importantes

--

--