Em termos leigos, o que é um API?
A palavra-chave é interface. Uma IU é uma interface de usuário, it's a forma como os botões em sua tela estão dispostos, o que esses botões permitem que você faça quando você clica neles, quantos botões existem, se são's para novatos ou especialistas, etc.
Uma API é uma interface para programadores. Os botões são comandos como getFriendsOf("Mike") e as respostas podem ser de amigos: {"Mark", "Bush", "Drake"}
Com uma interface de usuário você teria clicado no botão friends e veria uma lista de fotos e nomes. Para exibir tudo isso, o programador deve primeiro percorrer cada nome e encontrar a foto associada.
- getFriendsOf("Mike") responde -> friends: {"Mark", "Bush", "Drake"}
- findPhoto("Mark") responde -> foto: {"markprofilewedding"}
- findPhoto("Bush") responde -> foto: {"bushdonutchoke"}
- findPhoto("Drake") responde -> foto: {"darkleatherpants"}
- then display each photo with name of friend
A more convenient interface would have been showFriendsOf("Mike") and somewhere under the hood, another programmer would have written out the inconvenient form. Este é um comando menos flexível, ele só pode mostrar as fotos e nomes na tela, às vezes você quer apenas as fotos mas ele'é bom o suficiente para a maioria dos casos.
Na analogia de restaurante, você pode pedir uma estaca bem feita, mas você não'não diga ao chef todos os detalhes de como fazer, como quanto tempo para aquecer, quando pimenta-lo, que tipo de prato colocar. Se você ficar por cima do chef, ele ficará muito irritado. Existem entendimentos semelhantes entre web services e programadores que encomendam listas de amigos.
Simplesmente com um UI de botões, você'não clique nos botões para especificar se deseja exibir uma lista de amigos à esquerda ou à direita. Alguém mais tomou a decisão com base no que a maioria das pessoas quereria. A maioria das pessoas não'não vem a restaurantes para encomendar o chef por aí, por isso poucos chefs oferecem tais serviços.
UIs e APIs são apenas formas de esconder a complexidade dos serviços web, tal como no mundo real especialistas como chefs, trabalhadores do ferro, arquitectos lidam com as complexidades do seu ofício para que você possa estar livre para aprender programação.