SDKとは、Software Development Kitの略で、開発に必要な道具をまとめたセットです。
あるサービスや機能をアプリに組み込む時、SDKを使うとコードを書きやすくなります。
SDKとは
SDKは、開発者向けの道具箱です。
中には、次のようなものが含まれることがあります。
- ライブラリ
- サンプルコード
- ドキュメント
- コマンドラインツール
- 型定義
- 開発用の設定ファイル
すべてのSDKに同じものが入っているわけではありませんが、「その技術を使うために必要なもの一式」と考えると理解しやすいです。
APIとの違い

APIは、機能を呼び出すための窓口です。SDKは、そのAPIを使いやすくする道具セットです。
| 用語 | 役割 |
|---|---|
| API | 機能を呼び出すための決まり・窓口 |
| SDK | APIなどを使いやすくする開発用セット |
たとえば、決済サービスのAPIを直接呼び出すこともできます。しかしSDKを使うと、細かい通信処理を自分で書かずに済む場合があります。
ライブラリとの関係
ライブラリは、よく使う処理をまとめたコードです。
SDKの中にライブラリが含まれることもあります。つまり、SDKはライブラリより広い意味で使われることがあります。
ただし、現場ではSDKとライブラリが近い意味で使われることもあるため、文脈で判断することが大切です。
SDKを使う時の注意点
SDKは便利ですが、何も考えずに入れると困ることがあります。
- バージョンが古いと動かない
- 依存関係が増える
- 公式ドキュメントと実装がずれることがある
- 使わない機能まで入ることがある
初心者は、まず公式ドキュメントを見て、対象の言語やバージョンに合っているか確認しましょう。
同じAPIを2通りで呼ぶ
APIを直接呼ぶ場合はHTTPの契約を自分で扱います。
await fetch("https://api.example.com/messages", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({ text: "hello" }),
});
SDKでは、同じ操作をmethodで提供します。
await client.messages.create({ text: "hello" });
APIは「何を送ると何が返るか」という接点・契約です。SDKは認証、型、retry、serializationなどをまとめて、そのAPIを使いやすくする道具セットです。libraryは再利用する部品の総称で、SDKに含まれることがあります。
成功例は、公式documentを確認し、SDKが内部でどのAPIを呼ぶか理解することです。失敗例は、古いsampleをコピーし、versionやretryを確認しないことです。
secret keyをbrowser codeへ埋め込んではいけません。SDKを使っても、認証情報の安全性やAPIの利用制限が自動で保証されるわけではありません。
確認問題
SDKを更新するとAPI自体も必ず変わるでしょうか。SDKだけのmethod名や型が変わる場合もあるため、SDKとAPI双方のversion・変更履歴を確認します。
HTTP本文の見方はペイロードとは?、応答契約はAPIレスポンスの読み方を参照してください。
まとめ
SDKは、特定のサービスや機能を開発で使いやすくする道具セットです。APIは窓口、SDKはその窓口を使いやすくする道具箱、と分けて理解すると混乱しにくくなります。
← 一覧に戻る