BT

新しい あなたは、アーリーアダプター?それともイノベーター?そんな皆様に、InfoQの新機能をご案内しています。詳細はこちら

RESTfulなサービスのバージョンングから得られた知見

| 作者: Jan Stenberg フォローする 5 人のフォロワー , 翻訳者 徳武 聡  人のフォロワー 投稿日 2013年9月25日. 推定読書時間: 1分未満 |

原文(投稿日:2013/09/16)へのリンク

サーバドリブンなコンテンツネゴシエーションを行いながら、レスポンスを拡張してリンクを付け、表現のバージョンとフォーマットを変え、クライアントがニーズによってURLを選択できるようにすること。Howard Dierking氏が次のNuGet APIのメジャーバージョンであるバージョン3の設計で得られた最近の経験自身の1年前の考え方とを比較しながら、このようなことを書いている。

NuGet APIのようなスケールを求められ、さまざまなクライアントが接続してくるAPIを設計した経験から、氏はサーバドリブンなコンテンツネゴシエーションを信用しすぎていたと考え、今はクライアントをサーバに委ねすぎていると感じている。クライアントは特定の表現を要求することはできるが、クライアントが何を受け取るかもサーバに任されてしまっている。
氏は別のハイブリッドな方法を考えている。サーバドリブンなコンテンツネゴシエーションでは正規のリソースへのリンクを使いながらも、レスポンスを拡張してさまざまな表現へのリンクを提供する方法だ。クライアントは必要に応じてメタデータを使いながら、URIを選択する。

統一のインターフェイスの変更によってバージョニングされるという前提に立ち、氏は新しいバージョニングの方式を次のように要約している。

  1. 追加だけなら、単に表現に追加すればいい。理解できないクライアントを無視するだけだ。
  2. リソースを壊したり、リソースの意味がかわる変更をする場合は、新しい名前(URI)で新しいリソースを作る。
  3. リソースへの最適なパスを提供するようにコンテンツネゴシエーションを使う。ただし、制御はクライアントに渡し、異なる選択ができるようにする。

この3つのうち、始めのひとつは昨年から変わっていない。残りの2つは、氏の現時点の考え方を反映し、変更が加えられている。
Howard Dierking氏はMicrosoft開発プラットフォームのパッケージマネージャであるNuGet APIを開発している。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには 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