Você provavelmente já viu o termo “API” por aí. Sistemas operacionais, navegadores da Web e aplicativos geralmente anunciam novas APIs para desenvolvedores. Mas o que é uma API e como os programadores as utilizam?
O que é uma API?
O termo API é um acrônimo e significa “Application Programming Interface”ou em português “interface de programação de aplicativos”.
Pense em uma API como um cardápio em um restaurante. O cardápio oferece uma lista de pratos que você pode pedir, juntamente com uma descrição de cada prato. Quando você escolhe quais itens do cardápio deseja, a cozinha do restaurante faz o trabalho e fornece os pratos prontos. Você não sabe exatamente como o restaurante prepara essa comida, e você realmente não precisa saber.
Da mesma forma, uma API lista várias operações que os programadores podem usar, juntamente com uma descrição do que elas fazem. O desenvolvedor não precisa necessariamente saber como, por exemplo, um sistema operacional constrói e apresenta uma caixa de diálogo “Salvar como”. Eles só precisam saber que está disponível para uso em seu aplicativo.
Esta não é uma metáfora perfeita, pois os desenvolvedores podem ter que fornecer seus próprios dados à API para obter os resultados, então talvez seja mais como um restaurante chique onde você pode fornecer alguns de seus próprios ingredientes com os quais a cozinha funcionará.
Mas é bem preciso. As APIs permitem que os desenvolvedores economizem tempo aproveitando a implementação de uma plataforma para fazer o trabalho básico. Isso ajuda a reduzir a quantidade de código que os programadores precisam criar e também ajuda a criar mais consistência entre aplicativos para a mesma plataforma. As APIs podem controlar o acesso a recursos de hardware e software.
APIs facilitam a vida dos programadores
Digamos que você queira desenvolver um aplicativo para iPhone. O sistema operacional iOS da Apple fornece um grande número de APIs – como qualquer outro sistema operacional – para facilitar isso para você.
Se você deseja incorporar um navegador da Web para mostrar uma ou mais páginas da Web, por exemplo, não precisa programar seu próprio navegador da Web do zero apenas para seu aplicativo. Você usa a API WKWebView para incorporar um objeto de navegador WebKit (Safari) em seu aplicativo.
Se você deseja capturar fotos ou vídeos da câmera do iPhone, não precisa escrever sua própria interface de câmera. Você usa a API da câmera para incorporar a câmera embutida do iPhone em seu aplicativo. Se as APIs não existissem para facilitar isso, os desenvolvedores de aplicativos teriam que criar seu próprio software de câmera e interpretar as entradas do hardware da câmera. Mas os desenvolvedores do sistema operacional da Apple fizeram todo esse trabalho duro para que os desenvolvedores possam usar a API da câmera para incorporar uma câmera e depois continuar construindo seu aplicativo. E, quando a Apple melhorar a API da câmera, todos os aplicativos que dependem dela aproveitarão essa melhoria automaticamente.
Isso se aplica a todas as plataformas. Por exemplo, você deseja criar uma caixa de diálogo no Windows? Tem uma API para isso. Deseja oferecer suporte à autenticação de impressão digital no Android? Também existe uma API para isso, para que você não precise testar o sensor de impressão digital de todos os fabricantes do Android. Os desenvolvedores não precisam reinventar a roda repetidamente.
APIs controlam o acesso aos recursos
As APIs também são usadas para controlar o acesso a dispositivos de hardware e funções de software que um aplicativo pode não necessariamente ter permissão para usar. É por isso que as APIs geralmente desempenham um papel importante na segurança.
Por exemplo, se você já visitou um site e viu uma mensagem em seu navegador informando que o site está pedindo para ver sua localização, esse site está tentando usar a API de geolocalização em seu navegador.
Os navegadores tem APIs como essa para facilitar o acesso dos programadores à sua localização – eles podem simplesmente perguntar “onde você está?” e o navegador faz o trabalho duro de acessar o GPS ou redes Wi-Fi próximas para encontrar sua localização física.
No entanto, os navegadores também expõem essas informações por meio de uma API, pois é possível controlar o acesso a elas. Quando um site deseja acessar sua localização física exata, a única maneira de obtê-lo é por meio da API de localização. E, quando um site tenta usá-lo, você, o usuário, pode optar por permitir ou negar essa solicitação. A única maneira de acessar recursos de hardware como o sensor GPS é por meio da API, para que o navegador possa controlar o acesso ao hardware e limitar o que os aplicativos podem fazer.
Esse mesmo princípio é usado em sistemas operacionais móveis modernos, como iOS e Android, onde os aplicativos móveis têm permissões que podem ser impostas controlando o acesso às APIs. Por exemplo, se um desenvolvedor tentar acessar a câmera por meio da API da câmera, você poderá negar a solicitação de permissão e o aplicativo não terá como acessar a câmera do seu dispositivo.
Os sistemas operacionais que usam permissões — como no Windows, Mac e Linux — têm essas permissões impostas pela API do sistema de arquivos. Um aplicativo típico não tem acesso direto ao disco rígido físico bruto. Em vez disso, o aplicativo deve acessar os arquivos por meio de uma API.
APIs são usadas para comunicação entre serviços
As APIs também são usadas em várias outras situações. Por exemplo, se você já viu um objeto do Google Maps incorporado em um site, esse site está usando a API do Google Maps para incorporar esse mapa. O Google divulga APIs como essa para programadores, que podem usar as APIs para colocar objetos complexos diretamente em seu site. Se APIs como essa não existissem, os desenvolvedores poderiam ter que criar seus próprios mapas e fornecer seus próprios dados de mapa apenas para colocar um pequeno mapa interativo em um site.
E, por ser uma API, o Google pode controlar o acesso ao Google Maps em sites de terceiros, garantindo que eles o usem de maneira consistente e segura.
Isso se aplica a muitos serviços online diferentes. Existem APIs para solicitar tradução de texto do Google Tradutor ou incorporar comentários do Facebook ou tweets do Twitter em um site.
O padrão OAuth também define várias APIs que permitem que você faça login em um site com outro serviço, por exemplo, usar suas contas do Facebook, Google ou Twitter para fazer login em um novo site sem criar uma nova conta de usuário apenas para esse site .
Agora você tem uma ideia melhor do que é uma API. A princípio, você realmente não precisa saber o que é uma API, a menos que seja um programador. Mas, se você vir que uma plataforma de software ou serviço adicionou novas APIs para vários hardwares ou serviços, provavelmente deve ser mais fácil para os programadores aproveitarem esses recursos.