Diagrama que mostra uma ideia dos participantes de um workshop em 1978 no National Bureau of Standards, onde sugeriram que a API do gerenciamento de banco de dados (SGBD) poderia ser expandida servindo de base a outros tipos de interfaces de banco de dados. Relatório publicado em 1981.
Uma API permite utilizar características do software menos evidentes ao utilizador tradicional;[2] por exemplo, umsistema operativo possui uma grande quantidade de funções na API, que permitem ao programador criarjanelas, aceder a arquivos,codificar dados. Mas as APIs dos sistemas operativos costumam ser sem associação de tarefas mais essenciais, como a manipulação de blocos dememória e acesso a dispositivos. Essas tarefas são atributos donúcleo de sistema e raramente são programáveis.[3] Outro exemplo são programas de desenho geométrico que possuem uma API específica para criar automaticamente entidades de acordo com padrões definidos pelo utilizador.
Mais recentemente, o uso de API tem-se generalizado na forma deplugins (acessórios opcionais que complementam a funcionalidade de um programa). Os autores do programa principal fornecem uma API específica para que outros autores criemplugins, estendendo as funcionalidades do programa.
O propósito dasAPIs é o de simplificar o desenvolvimento deprogramas e aplicações, através daabstração dos diversos elementos que compõem umsoftware. Isso permite que o desenvolvedor não precise saber detalhadamente a implementação de todas as partes que compõem um sistema, mas sim, precisará saber como utilizar os serviços fornecidos pelasAPIs de seu interesse e como se dará a interação destas com os outros elementos de seusoftware.
É um conjunto de interfaces no contexto dedesenvolvimento Web. Uma API é um conjunto definido de mensagens de requisição e resposta HTTP, geralmente expresso nos formatosXML ouJSON. A chamadaWeb 2.0 vem abandonando o modelo de serviçosSOAP em favor da técnicaREST.
Enquanto você usufrui de um aplicativo ou site, este pode estar conectado a diversos outros sistemas e aplicativos via APIs sem que se perceba. Um exemplo popular é arede social Twitter,[4] sendo possível ler e publicar mensagens.[5] De maneira semelhante, é possível ler e publicar mensagens noReddit.[6]