はじめに
APIについてちゃんと理解しないまま使っていたのですが、気になったので今回調べました。
APIとは
- 「API」とは、「Application Programming Interface」の略で、アプリケーションプログラム同士がデータのやり取りを行うためのインターフェースや規約のことです。データや機能を提供するプログラムと、それを利用するプログラムの間の仲介役として機能します。
- なかでもWeb上で提供されるAPIをWebAPIと呼びます。WebAPIはHTTPやHTTPSといったプロトコルを利用するため、Web上の様々なデバイスやプログラムから利用出来ます。
REST APIとは
- WebAPIの中でも主流なのがREST APIです。REST APIとはRESTというアーキテクチャー・スタイルの設計原則に準拠するAPIです。(REST APIとRESTful API微妙な違いはあるのですが、あまり気にしなくていいようです。)
- 以下のような原則に則って設計されるサービスをRESTfulなサービスといいます。
統一インターフェース
- クライアントとサーバがやり取りする際に、決まったルールに基づいて通信することです。例えばHTTPのGETメソッドやPOSTメソッドなど、あらかじめ情報の操作方法が定義されています。
接続性
- 情報内部に他の情報や状態へのリンクを含めることができることです。これにより、RESTfulなシステム同士の情報連携を円滑に行うことができます。
アドレス可能性
- リソースがアドレス指定可能なURIで公開されていることが必要です。これにより、クライアントはURIを介してリソースにアクセスすることができます。
ステートレス性
- リクエスト間でクライアントの状態が保持されないように設計されています。これにより、シンプルで拡張性の高いシステムを実現することができます(ステートレスの逆がステートフルで以前の状態を保持したまま処理を行います)。
REST API以外のWeb Apiの例
-
SOAP API: XMLをベースにしたプロトコルで、WSDL(ウェブサービス記述言語)によってAPIの詳細な仕様を記述します。
-
GraphQL API: Facebookによって開発されたAPIで、RESTful APIと比較してより柔軟なデータ取得が可能です。クライアント側で必要な情報だけを指定して取得することができます。
まとめ
今後はRESTの原則を意識しながらAPIの実装をおこなっていきたいです!
参照