Faz já algum tempo que as siglas “API” e “SDK” se tornaram correntes no mundo da Web e das aplicações móveis, em particular.
Estes conceitos foram, de certa forma, importados do meio informático das aplicações e software de desktop (trocando por outras palavras, programas instalados no nosso computador) onde os dois conceitos já são considerados mais antigos.
O que significa API?
A.P.I. é a sigla para Application Programming Interface. Traduzido para português significará algo como “Interface de Programação de Aplicações”.
Definição de API
Uma API é uma especificação (ou conjunto de especificações) criada(s) com a intenção de serem utilizada(s) como uma interface (ligação) entre diferentes componentes de software de maneira a possibilitá-los de comunicarem entre si.
Por especificação ou conjunto de especificações entendem-se todas a rotinas, estruturas de dados (como as tabelas das base-de-dados, etc), classes de objectos e variáveis.
É esta especificação que define que funcionalidades (funções, métodos ou variáveis) do software em questão (vamos chamá-lo software A, a título de exemplo) estão disponíveis publicamente para outros componentes independentes do mesmo software ou software de terceiros, deixando todos os restantes pormenores e funcionamento interno do software A privados e impedidos de serem acedido directamente por terceiros.
São estas funcionalidades públicas do software A que se entendem como uma ligação (podemos usar a imagem de uma ponte) externa para outros softwares ou outros componentes do mesmo software. Esta ligação pública é chamada de “interface”.
A interface do software A permite ao software B utilizar os serviços públicos do primeiro software para obter algum resultado que deseje.
Desta forma os programadores do software A podem permitir aos programadores do software B utilizarem os seus serviços sem revelarem os pormenores da implementação do seu software.
API is a specification intended to be used as an interface by software components to communicate with each other. An API may include specifications for routines, data structures, object classes, and variables.