O que é um SDK? Kits de desenvolvimento de software explicados de forma simples
Um SDK (kit de desenvolvimento de software) é um kit pronto a usar que uma empresa oferece aos programadores para que possam usar o seu serviço ou plataforma sem construir tudo do zero. Normalmente inclui uma biblioteca de código para uma linguagem de programação específica, documentação e exemplos e, por vezes, ferramentas extra, como utilitários de teste. Quando a sua app «usa o SDK da Stripe», significa que o seu código chama as funções já prontas da Stripe, em vez de escrever à mão cada pedido à API da Stripe.
Porque é que os SDK importam quando cria com IA
Quando pede a um criador com IA para acrescentar pagamentos, chat com IA, mapas ou email, ele normalmente instala o SDK desse fornecedor e escreve algumas linhas que o chamam. Saber o que é um SDK ajuda-o a:
- Perceber o que está a ser acrescentado ao seu projeto. Um SDK é uma dependência — código externo do qual a sua app passa a depender.
- Identificar a configuração que precisa. Quase todos os SDK precisam de uma chave de API, e muitos têm versões separadas para «servidor» e «navegador», com regras diferentes sobre que chaves são seguras de usar.
- Pedir a coisa certa. «Usa o SDK oficial da Stripe no servidor» é uma instrução mais clara do que «acrescenta a Stripe».
- Ler erros. Muitos erros em apps criadas com IA vêm de um SDK mal configurado, desatualizado ou usado no sítio errado.
Uma analogia do dia a dia
Imagine que quer montar umas prateleiras.
- A API são as regras do edifício: que paredes aguentam parafusos, que peso suportam, onde estão as canalizações. Podia trabalhar só com essas regras, medindo e furando tudo por conta própria.
- O SDK é um kit de prateleira desmontável da mesma empresa que construiu as paredes: peças já cortadas, os parafusos certos, uma fixação que encaixa exatamente nas paredes deles e um manual de instruções.
Ainda decide onde vai a prateleira e o que lá se põe. O kit só o poupa a cortar madeira e a adivinhar tamanhos de parafusos — e é menos provável que acabe com um furo num tubo de água.
SDK vs API vs biblioteca vs framework
Estes termos sobrepõem-se, e isso confunde muita gente:
| Termo | O que é | Exemplo |
|---|---|---|
| API | As regras para comunicar com um serviço: que pedidos aceita e o que devolve | API REST da Stripe em api.stripe.com |
| SDK | O kit do fornecedor para usar a sua API ou plataforma a partir de uma linguagem concreta, com documentação e ferramentas | Biblioteca oficial da Stripe para Node.js |
| Biblioteca | Qualquer código reutilizável que acrescenta a um projeto | Um pacote para formatar datas |
| Framework | Uma estrutura maior dentro da qual toda a app é construída | React, Next.js, Django |
Um SDK normalmente contém uma biblioteca, e essa biblioteca normalmente chama uma API. Num serviço web, «SDK» e «biblioteca cliente» são muitas vezes usados como sinónimos.
Alguns SDK não têm nada a ver com serviços web. A Apple e a Google publicam SDK para criar apps para iOS e Android, que incluem compiladores, simuladores e código da plataforma. A ideia é a mesma: tudo o que precisa para criar para a plataforma deles, num só kit.
O que um SDK faz por si
Aqui está a mesma tarefa — criar um cliente num fornecedor de pagamentos — feita de duas maneiras.
Sem SDK, o seu código tem de construir ele próprio o pedido HTTP: definir o URL, pôr a chave secreta no cabeçalho certo, formatar os dados como a API espera, enviar, verificar o código de estado, interpretar a resposta e tratar as novas tentativas se a rede falhar.
Com SDK, fica mais perto de uma linha só:
const customer = await stripe.customers.create({ email: "lena@example.com" });
Por trás dessa linha, o SDK trata de:
- Autenticação — anexar corretamente a sua chave a cada pedido
- Formatação de dados — converter os seus dados no que a API espera, e a resposta de volta em objetos
- Erros — transformar códigos de estado em tipos de erro claros que o seu código consegue apanhar
- Novas tentativas — tentar de novo, em segurança, quando um pedido falha por motivos temporários (muitos SDK oficiais fazem isto)
- Tipos — em TypeScript, indicar ao editor que campos existem, para que os erros apareçam antes de executar o código
Um exemplo prático: respostas de IA numa app de apoio ao cliente
Pede a um criador com IA: «Quando um cliente submeter um pedido de apoio, gera uma resposta sugerida com um modelo de IA.»
- A IA instala o SDK oficial do fornecedor do modelo como pacote no seu projeto (em projetos JavaScript, a partir do registo npm).
- Acrescenta a chave de API do fornecedor como segredo do projeto. O SDK lê-a de uma variável de ambiente no servidor.
- A IA escreve uma rota no servidor que chama o SDK com o texto do pedido e uma instrução curta, e guarda a resposta sugerida na base de dados.
- O navegador nunca vê a chave; só chama a rota do seu próprio servidor.
Se o fornecedor mudar mais tarde a API, normalmente lança uma nova versão do SDK. Atualizar o pacote — e verificar as notas de versão para alterações que quebrem o código — costuma ser tudo o que é preciso.
Termos-chave
| Termo | Significado |
|---|---|
| Dependência | Código externo do qual o seu projeto depende. Um SDK é um deles. |
| Pacote / gestor de pacotes | Um conjunto de código descarregável, e a ferramenta que o instala (npm para JavaScript, pip para Python). |
| Biblioteca cliente | Código que facilita a chamada a uma API específica. Muitas vezes é isto que «SDK» significa nos serviços web. |
| SDK do lado do servidor | Corre no seu backend e pode usar chaves secretas em segurança. |
| SDK do lado do cliente / do navegador | Corre no navegador do utilizador. Só recebe chaves públicas ou «publicáveis». |
| Versão | Cada lançamento de SDK tem um número (como 4.2.0). Saltos grandes costumam significar alterações que quebram o código. |
| Alteração que quebra | Uma atualização que obriga a mudar o seu código. |
| Changelog / notas de versão | A lista de alterações do fornecedor em cada versão. |
Ideias erradas comuns
- «Um SDK e uma API são a mesma coisa.» A API é a interface do serviço; o SDK é uma camada de conveniência por cima. Pode chamar a maioria das APIs web sem SDK — dá apenas mais trabalho.
- «Se o SDK está instalado, a integração está feita.» Ainda precisa de uma conta no fornecedor, das chaves certas e de código que trate do que acontece quando as coisas falham.
- «Qualquer pacote com o nome certo é o oficial.» Por vezes, atacantes publicam pacotes com nomes parecidos. Confirme na documentação do fornecedor o nome exato do pacote.
- «O SDK do navegador pode usar a minha chave secreta.» Nunca. Tudo o que está no código do navegador é visível para os visitantes. As chaves secretas pertencem apenas ao código do servidor — veja como manter as chaves de API seguras.
- «Os SDK nunca precisam de atualização.» As versões antigas deixam de receber correções e acabam por deixar de funcionar quando os fornecedores retiram versões antigas da API.
O que pedir ao seu criador com IA
- «Usa o SDK oficial do fornecedor, não um wrapper de terceiros. Diz-me o nome exato do pacote e a versão que instalaste.»
- «Usa o SDK apenas no servidor e lê a chave a partir de uma variável de ambiente.»
- «Que partes deste SDK correm no navegador, e que chaves usam?»
- «O que acontece se a chamada ao SDK falhar ou expirar? Mostra ao utilizador uma mensagem clara e regista o erro.»
- «Lista todos os SDK e pacotes de que esta app depende e para que serve cada um.»
- «Verifica se algum dos nossos SDK está desatualizado ou tem problemas de segurança conhecidos.»
SDK no Mythex
O agente do Mythex pode instalar pacotes no ambiente do seu projeto usando o gestor de pacotes normal da sua stack, incluindo os SDK dos fornecedores — indique o pacote e a funcionalidade para que o quer. Veja Usar pacotes npm. O Mythex não traz um catálogo de integrações pré-construídas para a sua app: guarda a chave do fornecedor como segredo do projeto e pede ao agente que chame o serviço do lado do servidor, como descrito em Integrar qualquer API.
Para a camada por baixo dos SDK, leia o que é uma API. Para duas funcionalidades comuns baseadas em SDK, veja como adicionar pagamentos à sua app e como usar APIs de LLM.
Perguntas
O que é um SDK, em termos simples?
Um SDK (kit de desenvolvimento de software) é um conjunto de código pronto a usar, documentação e ferramentas que uma empresa disponibiliza para que os programadores usem o seu serviço ou plataforma com facilidade. Em vez de escrever à mão cada pedido a uma API, chama funções simples que o SDK já fornece.
Qual é a diferença entre um SDK e uma API?
Uma API é o conjunto de regras para comunicar com um serviço — os pedidos que aceita e as respostas que devolve. Um SDK é um kit construído sobre essa API, normalmente para uma única linguagem de programação, que faz esses pedidos por si e trata de detalhes como a autenticação, as novas tentativas e os formatos de dados.
Os SDK são gratuitos?
A maioria dos SDK para serviços web é gratuita e de código aberto para descarregar, mas o serviço a que se ligam pode cobrar pela utilização. Usar o SDK da Stripe ou da OpenAI não tem custo em si; os pagamentos ou pedidos de IA que ele faz são faturados pelo fornecedor.
É seguro usar um SDK?
Os SDK oficiais do fornecedor são, em geral, a forma mais segura de chamar o seu serviço, porque são mantidos e tratam dos detalhes de segurança. Instale-os a partir do registo oficial de pacotes, mantenha-os atualizados e tenha cuidado com pacotes não oficiais de nomes parecidos.