#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なら簡単にできますよ
やってることが同じだから混乱するのか。