RESTの紹介
id:c-yanの薦めで、新しい「REST紹介文」(以下)を読んでみた。
http://www.infoq.com/articles/rest-introduction
結構英語がムズイ。「こんな単語忘れてたっす」系の単語が結構でてくるんだもん。
- heterogeneous: 異質な
- digress : (話が)本筋からそれる
- horrid : 恐ろしい
- appall: ゾッとさせる、ひどくショックを与える
- pragmatic: 実践的な
- adhere to: 〜に忠実でいる
- exploit: 活用する
- idempotent: 冪等な
- vertices : vertex(頂点)の複数形
- incarnation: 肉体を持ったもの
(・・中には、こんなん忘れるなよ。的なのもはいってるけどさー。恥ずかしいけどUPしちゃうぜ。)
appallとかhorridあたりで、英検1級とかGRE対策でWord Smartって本を勉強してたころ(10年ぐらい前)を思い出したさ。
なんつうか、このあたりはおいらのなかで「Word Smart系単語」として括られてて、英検1級とGRE(GMATとかもかな?)と(普段ご縁のない)格調高い文章にしか出てこない言葉だと思っていたりするわけで、(大いなる誤解なのかもしれないけど)、技術系の解説文とかに出てくると面食らってしまうのだ。(ダメなやつ)
heterogeneousを忘れてたのはなんだか悔しい、留学中の構造力学で問題とくとき、必ずその対語のhomogeneousが出てたのになぁ。。あれから10年以上たつから忘れてもしゃーないか。
でも一箇所、これ間違いじゃね?ってのも見つけた。
- authorative -> authoritative じゃね?
まあいいや。英語は本題じゃなくて、内容が本題。
この文を読んで学んだこと:
- RESTはArchitectural styleであるということを再認識
- HTTPはRESTスタイルであるが、HTTPでRESTの実例のひとつでしかない
- つまり、HTTPでないRESTスタイルの何かってのがありうる。
思ったこと:
- OpenIDって、HTTPでないRESTスタイルの何かに発展できないかな?
- OpenIDのリダイレクトしたりする機構ってあれは美しいのか?というとあまり美しくない気がする
- あれは認証ドメイン+ドメイン内識別子でユニバーサルなID、グローバルなID空間というものを作り出した部分がすごいのであって、他の部分は別の形がありうるかも?
- ユーザに付与されたID(OpenID)は、リソースなのか?
- ユーザはリソースにアクセスする主体であって、リソースではないと捉えたほうがいいような気がする。
- ユーザがリソースでないなら、IDにURIを使うべきではないのではないか?
- URIそっくりだけど、UniformにUserをIdentifyするわけだからUUIみたいな名前ってありえん?
- Uniform Consumer IdentifierでUCIかもしれないけど
- 話は変わるけど、
- 認証・認可ってHTTPとは別レイヤーの、HTTPを補助するプロトコル(またはHTTPヘッダ拡張)でやったほうがよいかも?
- ていうか、HTTPに用意されている認証・認可機構ってヘッダでいろいろやってて、しかも拡張可能にみえる。
- OpenIDに代わって、HTTPのヘッダ部分でやる認証・認可の枠組みがあったほうがよくないか?(グローバルなIDと分散認証は欲しいけど)
- そういうHTTPを補助する認証・アクセス制御機構があったとして、その構造って、なんとなくだけどRESTにならないのかな?
- っていうかREpresentationa State Transferって、なんで、そんな名前なんだよ。
- Roy Fieldingの博士論文ちゃんと読んでみるべきかなぁ。
以上。