こんにちは。
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/30 08:34
2018/01/30 11:43
2018/01/30 12:21