Web APIの種類
公開されるAPI(Open API)
AmazonやTwitterなど外部連携するためのAPI。アメリカでは普及していますが、日本ではAPIを公開するという風潮は本格化はしていません。
公開されないAPI(Closed API)
クライアントサーバ間でやり取りするAPIなど
Web APIのデータ種類
XML over HTTP
XMLよりはJSONを使うように置き換わってきている。
SOAP
複雑な手順のリモートプロシージャコールになっていてWeb業界ではあまり使われない。REST APIと違ってメソッド(操作)単位で作成します。(例えば、「登録」という処理であれば、それに対してどのリソースに対して登録するかを別途指定します。)レスポンスはXMLになっており記述ルールが存在します。
XML-RPC
JSON over HTTP
REST API
リソース単位で作成します。(例えば、ユーザー情報や、商品情報など)一つのリソースに対して登録、取得、更新、削除と作っていきます。レスポンスはXML or JSONになっており記述ルールは特にありません。
歴史
世の中で流行ったAPIの流れです。
年度 | API名 | 説明 |
---|---|---|
2003年 | AmazonのProduct Advertising API | 世界中に大きなインパクトを与えたAPI。Amazonのアフィリエイトと結びついており誰でも簡単に自分のサイトからAmazonの商品を販売できるようになった。 |
2006年 | Twitter API | TwitterはAPIを世の中に公開して、様々なアプリケーションから操作させることによって、どんどん情報が集まり発展していった。APIを通じて成功を収めた。 |
2013年 | IntelがMasheryを買収 | IntelがAPI管理サービスのMasheryを買収したことが話題になった。 |
Twitterのサービス例
- Twitterに投稿されたデータを使って分析を行うサービス
- botと呼ばれる機械的に生成したメッセージを投稿するサービス
Twilioのサービス例
- 電話の自動応答(laaS)
- SMS送信(laaS)
- モバイルアプリケーションに必要なプッシュ通知(BaaS)
- データ保存(BaaS)
- データベースなどのストレージ機能のみ提供する(DaaS)
- 「あとで読む」ことを前提としてURIをためておくブックマークサービス
- ウェブ上の様々なサービスがPocketに対応していて今閲覧しているウェブページを保存できる。
MasheryなどのAPI管理サービス
APIのセッション管理やアクセス制御の分析、ユーザー向けのダッシュボードやドキュメント公開など様々な面倒を見てくれます。
ProgrammableWeb
APIディレクトリサービス、世の中に一般的に公開されているAPIを集めてその情報を公開している。
ウィジェット(サードパーティJavaScript)
他のページに貼り付ける目的で提供されていて、バックエンドのAPIにアクセスしてデータを送受信している。
注意点
- クライアント側のコードは誰でも簡単に読むことが可能なのでなりすましは不正アクセスが容易
- 他のページからAPIへのアクセスを行わせるtめ、クロスドメインでのアクセスサポートを行う必要がある。
WebHookについて
GitHubの機能というよりは一般的な機能
WebhookとAPIとの違い
APIが応答を取得するために要求を送信する必要があるのに対し、Webhookは応答を取得するために要求を与える必要がないこと
例
GitHub WebHook
GitHubが自動で更新されるたびに通知先URLに自動で通知がいく。
GitHub API
情報が必要となるたびにGETリクエストを送る。
GitHub
Settings→WebHooksで設定ができる。指定したURLに対してプッシュなど特定のアクションが発生したタイミングなどに送ってくれる。
PyLoad URL
外部サービスのURLなどを指定します。(例えば、「zapier」や「deply bot」など)
zapier
さまざまなサービス連携の仲介をすることができるサービス
利用例
GitHub上にissueが投稿されたタイミングでslackに通知してくれるようにする。
あるところまで行くと有料。月2000円。
Microsoft Flow
zapierでもできるが、これでも同じことができる。
Deploy bot
GitHubにコードをプッシュするだけでAWSなどに自動デプロイしてくれるサービス
この記事へのコメントはありません。