APIはソフトウェア同士が機能やデータをやり取りするための接点、SDKは特定の環境やサービス向けにアプリを開発するための道具一式です。SDKの中にAPIを利用しやすくする部品が含まれることがあります。
APIとは
APIは「Application Programming Interface」の略です。利用できる機能、入力方法、返される結果などの約束を定めます。開発者は相手の内部実装をすべて知らなくても、決められた方法で機能を呼び出せます。
Web APIでは、インターネット経由で商品情報を取得したり、決済処理を依頼したりします。OSやプログラミング言語が提供するAPIもあります。
SDKとは
SDKは「Software Development Kit」の略で、ソフトウェア開発キットと呼ばれます。ライブラリ、サンプルコード、説明書、デバッグ用ツール、ビルド機能など、開発に必要な部品をまとめたものです。
提供内容はSDKごとに異なり、必ずすべての道具が含まれるわけではありません。
比較表
| 項目 | API | SDK |
|---|---|---|
| 主な役割 | 機能やデータを利用する接点 | 開発を支援する道具一式 |
| 形 | 仕様・呼び出し方法 | ライブラリ、文書、ツールなど |
| 関係 | SDKから呼ばれることがある | API利用部品を含むことがある |
| 必要性 | 仕様に従えば直接利用できる場合がある | 対象環境の開発を簡単にする |
地図アプリの例
住所から緯度・経度を取得するWeb APIがあるとします。開発者はHTTPリクエストを作り、認証情報を付け、返されたデータを解析できます。
地図SDKが提供されていれば、地図画面、ピン表示、端末操作への対応などを用意された部品で実装できます。SDK内部で複数のAPIを呼ぶ場合もあります。
どちらを使うべきか
必要なデータを単純に取得したい、対応言語向けSDKがない、依存を減らしたい場合はAPIを直接使うことがあります。画面部品や認証、エラー処理を素早く正しく組み込みたい場合はSDKが便利です。
導入時の確認事項
対応OS・言語、利用規約、料金、更新頻度、セキュリティ、権限、データ送信、サポート終了予定を確認します。SDKはアプリへコードを組み込むため、不要な機能や脆弱な古い版を放置しないことが重要です。
よくある誤解
APIはWebサービスだけではなく、SDKは単一のライブラリと必ず同じでもありません。また、SDKを導入すれば設計やセキュリティ確認が不要になるわけではありません。
まとめ
APIは機能を利用するための接点、SDKは開発を支援する道具一式です。SDKがAPI利用を簡単にする関係もあります。目的、対応環境、保守性、データの扱いを確認して選びます。