Confesso que essa era uma pergunta que me intrigava. Eu via o conceito dos dois, conversas sobre os dois, mas ainda não tinha entendido qual a diferença entre eles e quando se referenciar a um ou a outro.
Pois bem, basicamente é o seguinte:
API (Application Programming Interface) – É como uma interface entre dois programas diferentes de modo que eles possam se comunicar um com o outro. Ou seja, uma API é a forma que terceiros disponibilizam uma interface de modo que possamos consumir um determinado serviço deles sem nos preocuparmos com a implementação do mesmo. As API podem usar qualquer meio de comunicação para iniciar a interação entre as aplicações. Por exemplo, as chamadas de sistema (System Calls) são invocados usando interrupções da API do kernel Linux.
Web Services – é uma interface projetada para se comunicar via rede. É uma API que usa obrigatoriamente a rede. Tipicamente, HTTP é o protocolo mais comumente usado para a comunicação. Web Services também usam SOAP, REST e XML-RPC como meio de comunicação. Ou seja, quando uma API precisa enviar dados através de rede, estamos falando de Web Services.
Só que é preciso estar atento a alguns detalhes. Uma API geralmente envolve chamar funções de dentro de um programa. Por exemplo, as aplicações de desktop, como planilhas e documentos de texto usam VBA e APIs baseados em COM que não envolvem a Web e mesmo aplicações de servidor como o Joomla podem usar uma API PHP presente no próprio servidor sem necessidade da rede.
Ou seja, resumindo de maneira bem simples:
- Todos os Web Services são API. Mas nem todas as API são Web Service.
- Web Services podem não executar todas as tarefas que uma API normalmente realiza (ou pode realizar).
- Um serviço Web utiliza apenas três estilos de comunicação: SOAP, REST e XML-RPC enquanto que a API pode usar qualquer estilo de comunicação.
- Um Web Service sempre precisa de uma rede para o seu funcionamento enquanto uma API não precisa.
- Uma API facilita a interface direta com um aplicativo enquanto que um Web Service é uma aplicação.
Referências:
Melhor explicação que achei na internet, simples e objetivo!
Ajudou!
Muito bom. Ajudou!
Simples e objetivo, vlws !!!
Muito esclarecedor! Obrigado!
Continuo sem entender. Afinal, a API não está na rede também?
Sim, pode estar na rede, mas a origem e o destino da comunicação se dá na mesma rede, digamos assim. Lembre-se, todo web service é uma API mas nem toda API é um web service, já que esse último se caracteriza principalmente pelo meio de transporte de comunicação.
Obrigado. Muito objetivo
Direto, simples e passou a mensagem. Top, parabéns!
gostei bastante da explicação