Compreender a diferença entre uma API e um SDK e saber quando fornecer cada um é muito importante para fomentar um ecossistema.
No atual cenário de desenvolvimento, essas duas ferramentas e a sincronia entre elas é a força motriz por trás da comunicação da web e implementação de APIs terceiras. Por isso, ajuda bastante saber exatamente o significado cada um desses termos.
Definindo API
API (Application Programming Interface) é simplesmente uma interface que permite que um software interaja com outro software. Esse é o core de sua funcionalidade. Pense na API como a Pedra Roseta, uma tabuleta na qual duas línguas completamente diferentes com dois conjuntos de instruções diferentes podem ser traduzidas e transferidas para entendimento mútuo.
APIs surgem em vários formatos. O navegador que um usuário provavelmente usaria para acessar um site se comunica com uma variedade de conjuntos de APIs, de forma a converter os comandos para funções utilizáveis, solicitar dados de servidores, transformar esses dados num formato compreensível para o usuário e validar o desempenho de suas requests, por exemplo.
Até mesmo algo simples como copiar e colar num computador utiliza uma API. Copiar texto converte a combinação de teclas Ctrl+C em um comando, dados são armazenados na área de transferência usando uma API do sistema operacional, os dados são então levados de uma aplicação a outra usando a mesma API e finalmente o dado é utilizado no “colar”.
Na World Wide Web, a API assume uma função um pouco diferente. Web APIs permitem interações entre sistemas díspares, normalmente para casos de uso específicos. Por exemplo, quando um usuário interage no Twitter, está utilizando uma API para comentar, armazenar seus dados, seguir um usuário, deletar seus tweets e mais. Em última análise, uma Web API é simplesmente um conjunto de instruções, assim como uma API de computador pessoal, mas com base no espaço da web.
Provavelmente, o mais importante é o fato de APIs permitirem consistência. Nos primórdios da programação, o computador era o oeste selvagem de comandos e instruções, vagamente codificado e raramente documentado. Com o advento da computação moderna, APIs têm permitido uma codificação consistente em ambientes estáveis, permitindo funções replicáveis entregues exatamente ao mesmo tempo que a request é submetida com confiabilidade e previsibilidade.
Definindo SDK
SDK significa Software Development Kit, o que é uma ótima forma de enxergá-lo: como um kit. Imagine montar um carro ou um avião. Ao construir esse modelo, um kit inteiro de itens é necessário, incluindo conjuntos de peças, ferramentas necessárias para juntá-las, manual de instruções etc.
Um SDK ou devkit funciona de forma muito similar, fornecendo um conjunto de ferramentas, exemplos de código, documentação relevante e processos ou guias para ajudar desenvolvedores criarem aplicações de software em uma plataforma específica.
Se uma API é um conjunto de blocos de construção que permitem a criação de algo, um SDK é um workshop completo, facilitando a criação longe do escopo que uma API permitiria por conta própria.
SDKs são a fonte originária de praticamente todo programa que um usuário moderno iria interagir. Desde o browser que você usa no trabalho até os games que joga no final do dia, muito foi construído com um SDK mesmo antes de uma API ser usada para comunicar com outras aplicações.
Casas e telefones
Parte da confusão por trás da diferença entre APIs e SDKs é o fato de que muito frequentemente um SDK contém uma API. Por definição, um SDK é um kit que inclui instruções que permitem desenvolvedores criar sistemas e desenvolver aplicações. APIs, por outro lado, são construídas para um uso expresso: permitir comunicação entre aplicações.
Não deve ser surpresa que quando um SDK é usado para criar uma aplicação que precisa se comunicar com outras aplicações, isso inclua uma API para essa funcionalidade. Inversamente, uma API é usada para comunicação, mas não pode ser usada unicamente para criar uma aplicação nova do zero. Outra forma de visualizar isso é pensar em termos de casas. APIs são como linhas de telefone, viabilizando a comunicação dentro e fora da casa. O SDK é a própria casa e tudo que ela contém.
A Remotatec como desenvolvedor de soluções em Despacho IP também possui APIs e disponibiliza* aos parceiros com o objetivo de integrar soluções com o objetivo de aumentar a sinergia entre produtos específicos otimizando recursos e maximizando o aproveitando de investimentos já realizados por nossos clientes.
*Mediante a assinatura de NDA (Non Disclosure Agreement)
Fonte: http://nordicapis.com/wp-content/uploads/how-to-market-an-API.pdf