BT

ハイパーメディアREST APIサーバの設計とクライアントからの利用

| 作者: Jan Stenberg フォローする 29 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2015年8月6日. 推定読書時間: 2 分 |

原文(投稿日:2015/07/09)へのリンク

RESTは明確に定義されたアーキテクチャスタイルであり,多くのメリットを持つ反面,あらゆる種類のWeb APIをそれで記述するような誤用例も少なくない - Jimmy Bogard氏は一連のブログ記事でこのように述べて,さまざまなハイパーメディアなどのメディアタイプ選択を始めとする,サーバからクライアントまでの完全なハイパーメディアソリューション実現の上で必要なものを強調している。

Microsoft MVPであるBogard氏は,"RESTとハイパーメディア"というRESTに関する固執のせいで,クライアントAPIとサーバAPIがともに著しく複雑なものになっていると指摘する。そういった努力が実を結ぶのは,クライアントとサーバが別々に開発されるような限定的なシナリオにおいてのみである,というのだ。クライアントとサーバが同じソース管理リポジトリ上にあって,同時にデプロイされるのであれば,ハイパーメディアのメリットはさほど大きくはない,というのが氏の意見だ。

メディアタイプを選ぶ上で,Bogard氏は3つの選択肢をあげる。

  • 標準を採用する。
  • 標準を拡張する。
  • 独自に設計する。

氏自身は,可能な限り標準を使用している。ひとつのプロジェクトで実行可能な範囲を超えるような労力への投資はしないのだ。さまざまなメディアタイプの能力を比較する手段として,氏は,Mike Amundsen氏の提唱するH Factorを引用している。メディアタイプのハイパーメディアサポートレベルの計測値で,目の前にあるユースケースに対して最適なものを選択する上での目安となる値だ。しかしながら,選択したメディアタイプがすべてのニーズを満たしていないことも多く,その結果として氏は,不足部分の拡張を強いられることが少なくない。

プレーンなJSON API構築にリッチなハイパーメディアモデルの複雑さが加わった場合と比較するならば,サーバの設計や実装などはごく簡単な作業だ,とBogard氏は考えている。一般論として,選択されたメディアタイプを含んで実装されたAPIには,それがクライアントの観点から許容されるものであることをAPIユーザが検証する,という作業が必要だ。

クライアントの視点からBogard氏は,氏がこれまで見てきたRESTの実装例の大部分について,サーバ側のAPIは含まれているものの,同じAPIを利用するユーザ側の実例を示せていない,という問題点を指摘する。自らの例として氏は,基本的なナビゲート機能を画面に備えたWebクライアントを開発した。情報テーブルとペイロード内のリレーションやリンクを併用することで,ユーザが詳細部分にドリルダウンすることができる。サーバの送信するペイロードには多数のメタデータが含まれている。疎結合を維持するためには,クライアントに提供されるRESTが,このメタデータに基づいて動作する必要がある。そうではあっても,クライアントは目的に特化したものでなくてはならない,と氏は考える。一般性のある汎用クライアントほど退屈なものはないからだ。jQueryを使ってクライアントを構築すると同時に氏は,クライアントの設計と実装がReactに関連したものだと説明している。そのオブジェクト指向性がハイパーメディアには最適だという考えからだ。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT