BT

非ブラウザHTTPクライアント用のホーム文書フォーマット

| 作者: Mark Little フォローする 12 人のフォロワー , 翻訳者 編集部N フォローする 0 人のフォロワー 投稿日 2012年5月30日. 推定読書時間: 3 分 |

原文(投稿日:2012/05/27)へのリンク

過去数年に渡って、誰かがSOAようなものやクラウド用にプロトコルとして、HTTP(そしてREST)を提案する毎に、HTTPはブラウザを念頭において設計されたので、非ブラウザクライアントには上手く合わない、という議論がなされてきた。けれども、JAX-RSと関連するフレームワーク のような標準と色々ある他の RESTfulアプローチによって、そのような懸念のために、ブラウザ外でその採用が鈍ることはなかった。Home Documents for HTTP APIsのドラフト提案の最近の発表に呼応して、IETFは更に非ブラウザクライアントを見据えている。この提案の中で、“application/json-home”フォーマットは、特定のサイトから入手できるリソースに加えて、そのようなサービスと、どのようにやり取りするかについて、可能なヒントも記述している。

   GET / HTTP/1.1
   Host: example.org
   Accept: application/json-home

   HTTP/1.1 200 OK
   Content-Type: application/json-home
   Cache-Control: max-age=3600
   Connection: close

   {
     "resources": {
       "http://example.org/rel/widgets": {
         "href": "/widgets/"
       },
       "http://example.org/rel/widget": {
         "href-template": "/widgets/{widget_id}",
         "href-vars": {
           "widget_id": "http://example.org/param/widget"
         },
         "hints": {
           "allow": ["GET", "PUT", "DELETE", "PATCH"],
           "representations": ["application/json"],
           "accept-patch": ["application/json-patch"],
           "accept-post": ["application/xml"],
           "accept-ranges": ["bytes"]
         }
       }
     }
   }

RESTeasyリードのBill Burke氏は、提案を気に入っている がそれについて興味あるコメントをしている。

私はこのフォーマットが好きですが、個人的な意見では、hintsは必要ありません。ほとんど(99%?)の非ブラウザ クライアントは、既にリソースとどのようにやり取りスべきか知っています。それらが本当に探しているのはリソースの実際のURLです。IMO、別のフォーマットは、リソース記述のために定義されるべきであり、もし望むならLink Relation URLは、その表現を提供できます。これ(とAtom Link XMLフォーマットも)に関しての別の不満は、relationship, relの値はURLになり得ることです。それよりも、論理的な名前を定義し、relationshipを記述するURLを特定する別の特性を持つべきだ、と思います。アプリケーション、特にイントラベースのアプリでは、インターネットアプリよりもURLはもっと頻繁に変わります。論理名特性は、固定のままで、記述用URLはずっと動的あるべきでしょう。

そしてある評者が指摘したように、恐らくこの提案の本当に役立つところは、当該のサービスが人にとって読みやすく、理解しやすいことではないか。しかし、人が本当に JSON-HOME文書を読むだろうか?更にMike Kelly氏が言うように、

もし hintsをとってしまったら、 hal+jsonになってしまい、これは1年以上前からあるものです。http://blog.stateless.co/post/13296666138/json-linking-with-hal

今のところこれは、単にIETFのドラフトにすぎないので、今がフィードバックを返す丁度いい時である。

この記事に星をつける

おすすめ度
スタイル

こんにちは

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