地図情報や天気など、外部サービスの情報や機能を利用する際に利用されるしくみがWeb APIです。現在主流になっているのは「REST API (RESTful API)」と呼ばれるもので、HTTP、JSONなどの標準技術を使って効率的に開発できるのが特徴です。
近年ではインターネット上のデータだけでなく、社内データの参照にも利用されるなどREST APIの活用範囲が広がっています。年々重要度は増しているものの、漠然とした認識のままでいる方も少なくないのではないでしょうか。
技術を利用するためには、ベースになる知識が不可欠です。本記事では、REST APIの特徴や、設計するにあたって知っておきたいエッセンシャルな知識を紹介します。
ダッシュボードの基礎&各種BIツールのご紹介
ダッシュボードとは何か、活用のメリット・デメリット、データを可視化することでのマーケティング活動の向上についてなど、ダッシュボードの基本を体系的に学ぶことができます。
- ダッシュボードの基礎
- ダッシュボードを活用すべき理由
- BIツールの選び方
- 各種BIツールのご紹介
今すぐダウンロードする
全てのフィールドが必須です。
「API(Application Programming Interface)」 とは?
APIとは、さまざまなアプリケーションの機能を外部から利用できるよう設計されたインターフェースを指します。APIの一例には、プログラムがWindowsの機能を呼び出す「システムコール」や第三者に地図情報を提供する「Google Map API」があります。
APIにはさまざまな種類がありますが、開発現場で広く利用されているのが「Web API」です。これは、Web上で公開されている機能や情報をHTTP(またはHTTPS)プロトコルで通信し、利用するものを指します。近年では、APIと言えばWeb APIを指す場合が増えています。
Web APIを利用する利点は、他社が提供する豊富な機能を簡単に利用できることです。自社で全ての機能をゼロから開発するのは一定の負担がかかります。既に他社が開発している機能を利用したほうが効率的でしょう。
Web APIを提供する側のメリットとしては、自社のシステムを広く利用してもらえること、それにより利用者の増加が期待できることが挙げられます。
REST API (RESTful API)の4原則
Web APIの主な種類として、SOAP(Simple Object Access Protocol)、RPC(Representational StateTransfer)、REST(Remote Procedure Call)の3つが挙げられます。その中でも、実装しやすい、汎用性が高いなどのメリットを持つREST APIが現在主流となっています。
RESTとは厳密には、Representational State Transferの略でWebの設計思想のひとつです。「統一インターフェース」「アドレス可能性」「接続性」「テートレス性」の原則を持ち、RESTの4原則に則ったAPIをREST API (RESTful API) と呼びます。
RESTの4つの原則
RESTの4原則は、アメリカの著名なコンピューターサイエンティストであるロイ・フィールディング(Roy Fielding)氏が2000年に論文で発表したものに基づいています。RESTの原則に沿うと簡潔に・効率的に情報のやりとりができます。
では、RESTは具体的にどのようなことを述べているのかを見てみましょう。
原則1:統一インターフェース(Uniform Interface)
情報をやりとりする方法を統一します。あらかじめインターフェースを決めておくと設計をシンプルにできます。
原則2:アドレス可能性(Addressability)
それぞれの情報ごとに場所や名前を識別できるURI(Uniformed Resource Identifier)で表現します。
原則3:接続性(Connectability)
情報のなかに、リンク情報が含まれます。
原則4:ステートレス性(Stateless)
サーバーが過去の状態(ステート)を持たず、純粋にその都度受け取った内容だけで結果(アウトプット)が導き出されます。
REST APIを使うメリット&デメリット
Web APIのなかでも、REST APIを利用するメリットとデメリットを説明します。
REST APIを使うメリット
開発者がREST APIを使うメリットは「シンプルで効率的な開発ができること」です。REST APIはHTTPメソッドやJSON形式など一般的なWeb技術を採用しているため、開発が容易です。URIの構造が決まっているため理解しやすい点や、ステートレス性を持つため拡張可能性が向上する点もメリットです。
REST APIを使うデメリット
一方デメリットとしては、RESTは仕様ではなくあくまでも設計思想であるため、実装の際の規定がありません。そのため開発者によって記述方法がバラバラになりやすい点が挙げられます。
REST APIの6つの特徴
REST APIは、以下のような特徴を持っています。それぞれの特徴についてポイントを見てみましょう。
- Uniform Interface(ユニフォーム・インターフェース)
- Stateless(ステートレス)
- Cacheable(キャッシュ可能)
- Self-descriptiveness(自己表現構造)
- Client – Server構造
- 階層型構造
1.Uniform Interface(ユニフォーム・インターフェース)
REST APIでは、データ形式はJSON、リクエスト〜レスポンスの処理はHTTPメソッドを利用すると決められています。また全てのリソースを独立した識別子であるURIで表現可能です。インターフェースが統一されているため、どのようなWebクライアントからでも同じように情報をやりとりできます。
2.Stateless(ステートレス)
RESTの原則でも挙げられているように、サーバーが過去の情報(Cookie・セッション情報等)を保持しません。これによりサーバーは余分な情報を保存する必要がなくなり、軽量化や実装のしやすさ、拡張性の高さにつながります。
3.Cacheable(キャッシュ可能)
REST APIではHTTPメソッドを利用しているため、HTTPのキャッシュが利用可能です。これによりサーバーへの問い合わせ回数を減らし、無駄なく通信が可能です。
4.Self-descriptiveness(自己表現構造)
REST APIでは、URIを見るだけでどのデータに何を行うのか内容が理解できます。
5.Client – Server構造
REST APIは、Webと同じようにクライアント・サーバー型の構造です。サーバーとクライアントは独立し、役割分担されているため、何か変更する際などでも互いに影響しません。
6.階層型構造
REST APIでは階層型構造を採用しています。これにより他の開発者がリソースの構造を理解しやすくなります。
REST APIの設計で押さえておくべき重要項目
REST APIの場合、HTTPメソッド(GET、POST、PUT、DELETE)をURIで表現するのが基本的な構造です。設計における重要項目は以下のとおりです。
REST APIの規則
REST APIでは、リソースはURIで、操作はHTTPメソッドで表現します。
HTTPメソッドの役割は以下のとおりです。
- POST:URIをリクエストし、リソースを作成する
- GET:リソースを照会して、該当するドキュメントの詳細情報を取得する
- PUT:リソースを変更する
- DELETE:リソースを削除する
URI設計時の注意点
URI設計は、人間が見やすい・理解しやすいようにすることが重要です。パスの書き方は、主に以下の6項目に留意するとよいでしょう。
1.小文字で記載する
大文字と小文字が混在すると読みづらく間違えやすくなります。そのため全て小文字で統一するようにします。
2.読みやすくするためにハイフンを使う
長いURIは可読性が低下します。見やすさのため、適宜ハイフンを入れるようにします。
3.アンダースコアは使用しない
アンダースコアは表示が隠れてしまい見落とされる可能性があります。極力使用せず、ハイフンで代替するようにします。
4.階層関係を表現するためスラッシュを使う
階層関係を明確に表現するため、URI内で「/(スラッシュ)」を使います。URIの最後には/を使わないようにします。
5.ファイルの拡張子を含めない
URIにはファイルの拡張子を含めないで記述します。これにより可読性が高まるほかメンテナンス性も向上します。
6.APIのバージョン情報を含める
URIにバージョン情報を含めることで、そのAPIを利用する開発者がバージョンを選択しやすくなります。
REST APIの主な活用シーン
REST APIは、次のようなシーンで活用されています。
SNSのAPI
Twitter、Facebookなどの主要SNSで提供しているAPIを利用すると、直接SNSへアクセスしなくても投稿された情報を収集・取りまとめられます。それを利用して自社アプリケーション上で特定の情報を抽出して表示するなど、新たな価値が提供可能です。
言語の連携
REST APIは、HTTPベースで情報をやりとりします。そのためCとJavaなど、開発言語が異なるアプリケーション同士であっても情報のやりとりができます。そこで異なる言語のサービスを連携する用途でも利用されます。
RESTの基本をしっかり理解しよう
現代のシステムやサービスの多くは外部サービスとの連携を前提に開発されています。一から開発しなくても、既存サービスを活用すれば工数・コストの軽減や開発スピード、利便性向上に繋がるからです。
その手段としてWeb APIの活用は不可欠であり、特に主流であるREST APIは限られた分野のエンジニアだけでなく、幅広い分野のエンジニアにスキルが求められます。良質なサービスを開発するためには、基本的な知識をしっかりと理解しておくことが必要です。知識があやふやな人は、この機会に基本を再確認してみましょう。