API とは?
API とは Application Programming Interface の略で、サービス内の情報や機能を扱えるようにする仕組みです。
よく 「API をたたく」という表現を使ったりしますが、下図のように情報(データ)は格納されているサーバーがあったとします。
我々使用者は、その情報が欲しい時は、そのサーバーに対して「この情報が欲しいですよ」というリクエストを送ります。
サーバー側は受け取ったリクエストをもとに、使用者にレスポンスを送ります。
これが API の大まかな流れになります。
WEB API
我々が普段から口にしている API は一般的に WEB API を指します。
WEB API とは、
HTTP・HTTPS ベースで実現する API
Web を介して使用する API
です。
API は WEB API のことであると思っていただくとわかりやすいかと思いますが、WEB API 以外の API も存在します。
プラットフォームのサービスを開発している企業が独自に規定している「独自API」というものも存在します。
REST API
REST は
Representational State Transfer
の略で、REST API は
「REST の原則」に則って実装されている API
を意味します。「REST の原則」は4つの原則から成り立っており、
この原則に沿って設計された API は、APIを効果的に活用しており、多くの API で用いられているルールとなります。
4つの原則とは
- アドレス可能性
- ステートレス性
- 接続性
- 統一インターフェース
となっています。
アドレス可能性とは
URI からリソースを端的に表現できる性質を表していて、すべての情報が一意に表現されていることです。
つまり、1つの URL ですべての機能を表現できるようにすることです。
例えば、書籍情報を管理する API があったとして、URI を「http://book-management」としたとき、この URI で「登録」「取得」「更新」「削除」ができるということを意味しています。
ステートレス性とは
すべてのリクエストが完全に分離していて、セッションなどの状態管理は行わないことを意味します。
つまり、最初に送ったリクエストとその次に送ったリクエストは完全に独立していて、リクエスト間で影響を及ぼさないということを意味しています。
接続性とは
情報に「別の情報へのリンク」を含めることができ、リンクを含めることで、別の情報に接続可能になるということを意味しています。
統一インターフェースとは
情報の取得、作成、更新、削除といった操作全てHTTPメソッドを利用します。
SOAP API
SOAP は
SimpleObject Access Protocol
の略です。
REST とは違い、URI に動詞的になることが多い。
また、RESTはレスポンスとしてjson, xmlなどのフォーマットは特に指定していないのに対して、SOAPは、リクエストとレスポンスともにxmlフォーマットのデータを扱う方式になっています。
REST か SOAP のどちらがいいということはなく、どちら一長一短で、場合によって実装方針を変える必要があります。
API 活用のメリット・デメリット
メリット
- 開発の効率化、コストの削減
すべての機能を自分で用意する必要がなく、開発にかかる時間やコストの削減ができる
- セキュリティ、顧客満足度向上
他社の API を使用する場合、様々なデータや機能を自社で保有することがないのでセキュリティ面の向上につながります。
- システム変更による影響の最小化
自社で様々な機能を実装している場合、何かの仕様変更をもとに、大部分を書き換えなければならなくなるが、API であれば影響が最小化できる。
デメリット
- API サービスに依存してしまう
他社の API であれば料金体系の変更や API 提供の中止によってサービスが成り立たなくなることもあり、API仕様変更で不具合が生じるケースもある。
コメント