第4回RESTful勉強会を開催してみました(後編)

2015年2月25日水曜日 ぷぽ

こんにちは、フルなんちゃら総務のぷぽです(・ω・)ノ
前回に引き続き、RESTful#とは勉強会4のレポート後編です!


■OPTIONS#とは

OPTIONSは「リソースがサポートしているメソッドを取得する」メソッドです。私含め、みなさん使いどころが分からないと質問していました。話によるとAjaxで違うドメインにリクエストを飛ばす時に、ブラウザがプリプライトリクエストとして自動的にOPTIONSを投げているそうです。本来Ajaxは同じホストとドメインにしか送れないですが、これでどこからでも送れるようになるそうです。ほ〜。

ということで、いろんなページにOPTIONSメソッドを投げてみることにしました。curlコマンドで確認してもいいのですが、ここでHTTPieなるものを知ります。(参考:https://github.com/jakubroztocil/httpie)こちらを使用してみると、とても見やすく表示されるではありませんか!Macの方はhomebrewから簡単にインストールできるので、皆さんも是非インストールをしてみてください。気を取り直してOPTIONSを使用してみます。

・Yahoo!(www.yahoo.co.jp)さん
何故かトップページがそのまま返ってくる...。
プロキシでメソッド自体ブロックしてるのかなという話もありましたが、詳しい事は分かりませんでした。
(途中省略)これ以下にズドドドとHTMLが返ってきてました

・Google(www.google.co.jp)さん
おや...「405 Method Not Allowed」が返ってくるではありませんか。イメージとしては、買い物で現金の手持ちが少なかったので「カード払いできますか?」って質問したのに「その質問には答えられません!」と返された感じ。悲しい...。「501 Not Implement」と返ってきた方が「ごめん、実装してないんだ...」と分かって紳士的だよというお話もありました。
悲しみ

・弊社Webページ(www.val.co.jp)
なんと!OPTIONSメソッドが使用できる上にそれらしいものが返ってきているではありませんか!
AllowヘッダにGET,HEAD,POST,OPTIONSが!

いや、何かがおかしい。ここで本を確認してみます。

OPTIONS自体はAllowヘッダには含めません

あっ...。

結構誤用が多いんですかね。しかし割とマイナーなメソッドについてこんなに突き詰められるのが読書会の良いところですし楽しいところですね。自分で読むだけでは絶対に得られなかった気付きだと思います。

またまた書いていたらキリがない感じになってきたので、今回はこの辺で!今回もいろんな知見が得られて非常に楽しかったです!更に内容が気になる方は、前編でご紹介しました@makopi23さんのブログや、川村さんのGistに大変素敵にまとめられていますのでご覧ください。あと、主催者@shokolatedayさんのブログも是非!


(おまけ)
懇親会で終電を逃すのはお決まりになってしまいました。ネタの為にわざと逃している訳ではないです。懇親会や飲み会は駅すぱあとで終電検索の上、計画的に飲むことをお勧めします_(:3」∠)_