REST APIについて
REST APIについて
概要
REST API(Representational State Transfer)とは
REST APIは、外部のWEBシステムを(WEB通信で)用いる際に使用するAPIの一種であり、RESTという設計原則を元に作成されたAPIです。
※API:異なるアプリケーション間のデータの橋渡しするためのもの
つまりは同じ(仮想)コンピュータ内に存在しない、または異なるネットワークにあるようなWEBシステムを、WEB(HTTPまたはHTTPS)通信で用いる時に使用します。
主な特徴
主な特徴をまとめると以下の通りです。
- クライアント・サーバ型である
-
ステートレス(※)である
-
※ステートレスについて
- セッションの状態を保持しないことです。セッションの状態を保持することでネットショッピングにおいてカート情報をお会計のページまで有効にすることができます。ステートレスである場合、つまりはカート情報のようにクライアントとサーバー間のやり取りで発生したデータを保持できません。
-
※ステートレスについて
-
キュッシュが可能
- ステートレスである一方、キャッシュが利用できるので、クライアントのブラウザに取得したデータをキャッシュとして保存できます。
- クライアント、サーバ(またはシステム)間のやり取りは、HTTP(HTTPS)を使用できる
- アプリケーション(WEBサービス)をURIで指定する(※次ページ以降で解説)
- シリアル化後のデータ形式にJSON、XML、YAMLをサポートしている(※次節で解説)
-
とにかく汎用性が高い
-
REST APIを用いれば、従来のWEBシステムのようにリクエストに対してユーザにHTMLを返すことはありません。JSONなどHTMLと比べ軽量なデータを返するので、モバイルアプリのようにデータ処理が安定しないデバイスを想定したアプリ開発にも適しています。
またJSONはJavaやPerl、C#など幅広い言語に対応しているので、使用言語が異なるシステム間の連携が容易です。
-
REST APIを用いれば、従来のWEBシステムのようにリクエストに対してユーザにHTMLを返すことはありません。JSONなどHTMLと比べ軽量なデータを返するので、モバイルアプリのようにデータ処理が安定しないデバイスを想定したアプリ開発にも適しています。
URIについて
URIとは
クライアントは、アプリケーション(WEBサービス)を管理するサーバへ、データを要求する際、URIを指定します。
URI(Uniform Resource Identifier)とは、URLの上位に該当するものであり、URL(UR Locator)とURN(UR Name)を内包します。URLは対象のリソース(WEB上にあるデータ)の場所、URNはリソースの名前を表すものであり、URIはリソースを一意的に扱う識別子の総称です。
操作内容ごとにおけるURIについて
従来のやり方では、主にデータベース連携で用いられるような登録(Create)、読み込み(Read)、更新(Update)、削除(Delete)などの操作を実行する際、操作の内容によってURIが変わりました。
これら一連の操作を登録(Create)、読み込み(Read)、更新(Update)、削除(Delete)の頭文字を取ってCRUDと呼び、サーバがこれらの操作を実行する際の呼び方となっています。
しかしREST APIでは、URIではなくHTTPメソッドを介して操作内容を指定できるので、操作対象のリソースが同じであれば、操作の内容に寄らずURIが同じものになります。
シリアル化について
クライアントと、サーバ間で、異なるプログラミング言語を使用すると、正常にデータのやり取りができません。
そのため汎用的な(共通の)データ形式に変換した上で、通信を行います。データを汎用性の高いデータ形式に変換することをシリアル化と呼びます。
変換後のデータ形式としては主にJSON、XML、YAMLなどがあげられます。
※JSONについては次節で解説します。