質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

Q&A

解決済

1回答

2436閲覧

RESTのうち、統一インターフェースの利点とは

nvcpg_198

総合スコア25

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

0グッド

3クリップ

投稿2018/01/29 11:35

ある本にはインターフェースが統一されることで
サーバとクライアントの実装の独立性が向上するとか
書かれているんですが、もうちょい詳しく書けよバカという感じです。
ネットで調べても書籍の引用みたいな内容で抽象的なことばかり
書かれているのですがもう少し具体的に統一インターフェースの
メリットを知りたいです。

統一されている時に何らかのメリットがあるということは、
統一されていないならそのメリットが得られないということですよね。
例えば、ある機能Cのインターフェースが統一されておらず、
Cを扱う上でAとBという二つの異なるインターフェースが
あったとしたら、どう都合が悪いのですか?
Aを使っているやつとBを使っているやつを入れ替えることで
問題が発生するとかではないですよね?だってこの前提なら
Cという機能はA,B両方のインターフェースで使用できるわけですから。

WEBについて昨日から勉強しはじめたのでいろいろ認識が
間違っているとこが多々あると思いますが、そういう点も含めて
指摘してもらえると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。
RESTに限った話でもなさそうなので、例えば、そうですね……

ブラウザではJavaScriptが動作しますね。もし、無数に存在する各ブラウザごとにJavaScriptの仕様が全く異なっていたらどうなると思いますか?サポートしたい全てのブラウザに対して、それぞれ特化したJavaScriptを書かないといけなくなるわけです。
「ある機能C」が、例えば画面を動かすための機能だとしたら、それを実現するためのインターフェースがAブラウザの「A」、Bブラウザの「B」、さらに……で、別のものを書かないといけないということです。
Webエンジニアがしんでしまいます。


20180130 追記:

コメントへの返答と追記です。

どのブラウザだろうがAもしくはBを使っていればCを利用できるということです。

はい。全てのブラウザがAもしくはBを使えるようになっていればという前提ですね。ブラウザはAとBをサポートすることを強制されるわけです。途中でCが新登場し、いつしかZまで増えたらどうなるのでしょう?

したがってブラウザの種類に依存しない仕組みがすでにできているわけで、

あっ、逆です。RESTの統一インターフェースを実現したからこそブラウザの種類に依存しない仕組みになったんです。RESTというのはその「ブラウザの種類に依存しない仕組み」そのものです!RESTというのが質問者さんが考えているより一段階下のレイヤの話だったということかもしれません。
質問のインターフェースA,Bというのが特定サーバ上でのWebAPIの一つのことを指していたなら、それは「REST統一インターフェースに則って具体化された窓口」であり、インターフェースが統一されているからこそ、複数の、同じように扱える窓口を定義できているのです。


RESTインターフェースの利点のことに絞って具体的に話をすると、
RESTインターフェースというのは、リソースに対する操作というのもある一種では正しい表現と言えますが、正しくはインターフェースという文字通りの「コミュニケーションのための規格の一」と考えるのが良いです。
RESTというWeb上のやりとりのための厳格なルールを定め、それを通してコミュニケーションを取るように取り決めると、

  • 情報の提供者(サーバ)は、RESTのルールに合わせてリソースを提供すれば、RESTを解する全てのWebクライアントに正しくリソースを提供できる
  • 情報の利用者(クライアント)は、RESTのルールに則って要求を投げると、RESTで提供される全てのWebリソースに正しくアクセスできる

ということになります。
これが、REST以外に山のように種類があったとしたら、「相手のサーバがどのインターフェースをサポートしているか」と「自分がどれだけのインターフェースをサポートしているか」の組み合わせでアクセスができなかったりするわけです。
これをREST一つに固定すれば、「みんながRESTをサポートしていてみんなと正しく通信できる!」となるわけで、これが統一インターフェースの利点なのです。

「みんなが日本語を話すように統一すれば、みんなと日本語でお話できるよね」
というだけの話でしたね。

投稿2018/01/29 23:28

編集2018/01/30 11:42
tamoto

総合スコア4105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nvcpg_198

2018/01/30 08:34

すみません、あくまでRESTの話として聞きたいです。 Webの設計思想としての話が聞きたいんです。 ここで言うインターフェースとは、リソースに対する操作という 認識なんですが、まずこれ合ってますか? 回答内容を見た限りでは僕が質問した内容の前提が そもそも間違ってるということになります。 ある機能CはインターフェースAとBから利用できる。 なので、(回答の例から言うと)どのブラウザだろうが AもしくはBを使っていればCを利用できるということです。 したがってブラウザの種類に依存しない仕組みがすでにできているわけで、 なのになぜAやBのように統一されていない状況で問題が出るのか? という質問です。 回答が正しい内容であるとすればそれで解決なのですが、 うまくそれが判断できないです。抽象度を、もう一段階下げて 説明していただけるか、情報の出処を教えて頂きたいです。
tamoto

2018/01/30 11:43

なるほど、質問の前提に少しズレがあったようです。 回答のほうに追記しましたのでご確認ください。
nvcpg_198

2018/01/30 12:21

ありがとうございました!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問