http://yusukebe.com/archives/08/03/31/132218.html

ここの記事中で
俗に言う「REST/XML over HTTP」という箇所が
俗に言う「POX over HTTP」という風に訂正されていますが、
自分が知らないだけかもしれませんが「POX over HTTP」というのを俗に言わない気がしますし
あまり聞いたことがありません。
ググってみても"REST over HTTP"の方がふつうにヒットします。
訂正の理由はTwitterでつっこまれたからだそうですが、
"REST/XML over HTTP"のような表現だとどうして問題となるのでしょうか。
ニュアンスが正確じゃない、という感じの理由なのでしょうが、
そのあたりがよくわかりません

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2010/11/02 22:48:47
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント35pt

「俗に言う」というのが曲者のような気がするのだが、とりあえずそこは気にしない。


http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_sty...

REST と言われるためには、いくつか条件があって、そのうちに重要だと思われるのは「リソースに対して、それを指し示す識別子が存在する」ということだと思います。

例えば、Webサービスのうち、POST メソッドでのみ検索結果を返すようなサービスは、厳密には REST とは言えない、と。

で、件のページでは、

俺の解釈でいいますと、パラメータを指定して GET (POSTの場合もある)により情報の入ったコンテンツをXML形式で取得する

と、「俺の解釈」と逃げを打ってますが、

  • パラメータを指定するかどうかは関係ない

  • コンテンツが XML かどうかも関係ない

ので REST と言うには十分条件ではない、ということですね。


論文では Web 自体が REST と重ね合わせて論じてるところもありますから、その一部のサービスを切り出して REST だ、というのは、そもそも視点が違います。


また POX については、POX over HTTP というような表現が使われないのは、POX が XML の表現について語っている言葉だからです。

REST は、アーキテクチャを指し示す言葉ですから、その実装については種々あるわけで、REST を、プロトコルに HTTP を使って、データ表現を XML で実装している場合に REST / XML over HTTP のような表現をします。

POX は、SOAP のように XML 表現の中で、片付けや構造を厳しく規約化したものに対して、「昔のようにデータの構造にたいして、構造と種類をタグで表現し、データを #text で表現するので、十分じゃないの」というような揶揄を含んだ言葉ですから、プロトコルなんかには関係なくて over HTTP というような修飾は付きません。


Twitter でのやりとりを見てないので、ニュアンスまでは分かりませんが、最近では REST という単語の誤用も多いし、そもそも論文が意図してたところとは違うよね、というような指摘だったのではないでしょうか?

件の「ゆーすけべー日記」では、俗に言う Ajax で使われるサービスを簡単にアクセスできる Perl モジュールを作ってみました、というのが本題でしょうから、REST という表現にはこだわりはないでしょうし。

id:dedara

ありがとうございます。

5年前くらいSOAPとの対比の中でRESTという言葉が頻繁に使われていたのを記憶していますが、

そういう文脈で使う場合はRESTと言うよりも本来POXと呼んだ方がいい、という感じの指摘だったわけですね。

ただなんとなくウェブAPIを使ってデータをやり取りする技術について語るとき"REST"って使いたくなりますね

2010/10/27 23:00:48

その他の回答1件)

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント35pt

「俗に言う」というのが曲者のような気がするのだが、とりあえずそこは気にしない。


http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_sty...

REST と言われるためには、いくつか条件があって、そのうちに重要だと思われるのは「リソースに対して、それを指し示す識別子が存在する」ということだと思います。

例えば、Webサービスのうち、POST メソッドでのみ検索結果を返すようなサービスは、厳密には REST とは言えない、と。

で、件のページでは、

俺の解釈でいいますと、パラメータを指定して GET (POSTの場合もある)により情報の入ったコンテンツをXML形式で取得する

と、「俺の解釈」と逃げを打ってますが、

  • パラメータを指定するかどうかは関係ない

  • コンテンツが XML かどうかも関係ない

ので REST と言うには十分条件ではない、ということですね。


論文では Web 自体が REST と重ね合わせて論じてるところもありますから、その一部のサービスを切り出して REST だ、というのは、そもそも視点が違います。


また POX については、POX over HTTP というような表現が使われないのは、POX が XML の表現について語っている言葉だからです。

REST は、アーキテクチャを指し示す言葉ですから、その実装については種々あるわけで、REST を、プロトコルに HTTP を使って、データ表現を XML で実装している場合に REST / XML over HTTP のような表現をします。

POX は、SOAP のように XML 表現の中で、片付けや構造を厳しく規約化したものに対して、「昔のようにデータの構造にたいして、構造と種類をタグで表現し、データを #text で表現するので、十分じゃないの」というような揶揄を含んだ言葉ですから、プロトコルなんかには関係なくて over HTTP というような修飾は付きません。


Twitter でのやりとりを見てないので、ニュアンスまでは分かりませんが、最近では REST という単語の誤用も多いし、そもそも論文が意図してたところとは違うよね、というような指摘だったのではないでしょうか?

件の「ゆーすけべー日記」では、俗に言う Ajax で使われるサービスを簡単にアクセスできる Perl モジュールを作ってみました、というのが本題でしょうから、REST という表現にはこだわりはないでしょうし。

id:dedara

ありがとうございます。

5年前くらいSOAPとの対比の中でRESTという言葉が頻繁に使われていたのを記憶していますが、

そういう文脈で使う場合はRESTと言うよりも本来POXと呼んだ方がいい、という感じの指摘だったわけですね。

ただなんとなくウェブAPIを使ってデータをやり取りする技術について語るとき"REST"って使いたくなりますね

2010/10/27 23:00:48
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント35pt

SOAP vs REST でいろいろ言われてたころは、XML の表現についてだけの話ではなかったので、REST で良いんです。

その中で、「SOAP は、何で、変に入り組んだ XML をやり取りせにゃああかんのさ。POX で良いじゃん」というのはありです。


ただなんとなくウェブAPIを使ってデータをやり取りする技術について語るとき"REST"って使いたくなりますね

で、それは誤用だ、って件のページでも指摘されたわけでしょ。

ぴったりくる単語が無いからなんでしょうね、きっと。

"Ajax" という単語で、無理やり通しちゃうときもあるけど「XML じゃなくて、JSON なんだよな」とか、「client は、javascript じゃないしなあ」とか、その辺りをひとまとめで表現する単語が。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません