Edited at

SDKとAPIについて


SDKとAPIの違いについて

データ連携の際にSDKとAPIについて触れる機会があったのでその違いについてのメモ

厳密ではないです。ふわっとしてます。

Javaを自分がやってたのでJava視点で見ます


まずは。

APIとSDKは全然違うものです。

自分も調べていくうちにSDKとAPIの関係性とか調べ始めて何が何だか分かんなくなった。


SDK

SDKはソフトウェア開発キット(Software Development kit)でJavaのみんなが使えるクラスみたいなもの。(APIとか言われてるけど今回は混乱するのでクラスで行きます。厳密ではないです。すいません)

↓こんなやつよね



https://docs.oracle.com/javase/jp/7/api/


API

APIはApplication Programing Interfaceの略でつまりは通信(HTTPとか)のルール

「特定のURL送ると特定のデータ返しますぜ」ってやつ。

例)HTTP1.0では

GET ファイル名 HTTP/1.0(改行)(改行)

をすしてWebサーバーに送ればWebページの情報が取れますよと。


なんでAPIとSDKが混乱するのか

サービスによってはAPIやSDKを公開しているところがある。

もう一度言っておくとSDKはあくまでクラスでAPIはルール

だからそのサービスの情報を取りたかったらAPI(ルール・URL)で取ればいい。

でも、そのAPIを書くのって大変。

そこで企業側でAPIを簡単にしてくれるクラスを作ったよ=SDK

だからSDKはJava自体にも備わっているクラス(JavaでいうAPI。上のAPIとは違うよ)と同じで会社独自で作ったやつ。それを使うとクラスのメソッドの中に定義されているAPI(URL)が動きますよ。

SDKを使ってAPIを送ってますよ。SDKもAPIもやってることは同じですよ。SDKなら簡単にできますよ

やってることが同じだから混乱するのか。