Time for Reflection

きままに、きらくに

RESTful#とは勉強会6に参加してきた

自社で開催したときは会社のブログに投稿してましたが、今回はこちらに記録してみます。

勉強会概要

rubychildren.doorkeeper.jp

いつもは共同主催者としてお手伝いさせてもらっているのですが、4月はほんとにバタバタしていて、今回は完全に参加者側として参加させてもらいました。「最悪行けないかなぁ」とも思っていたのですが、たまたまこの日は余裕があったので本当に良かったです。

ちなみに当日のポイントと解説が書いてある川村さんの素敵なGistはこちらです。

読書会

Webを支える技術の第8章「ステータスコード」の所を読んでいきました。以前よちよち.rbのオンライン読書会で読んでいたところだったのですが、改めて見てみると疑問点とか出てくるもんですね。(忘れてるだけかも)川村さんのGistに載ってないところで特におもしろかった点を2つ。

リダイレクトについて

最近はあまり見ないけれど「5秒後にページが切り替わります」みたいなページ、ありますよね。あれってどうやって設定するんだろうって思ってたら、HTTP側の機能ではないということでした。

ちなみにHTML5だとこう書くみたいです。

<!-- 15秒後に http://www.example.com/ に飛ぶ -->
<meta http-equiv="refresh" content="15; URL=http://www.example.com/">

401と403の違い

  • 401(Unauthorized - アクセス権不正)

適切な認証情報を与えずにリクエストを行ったことを示します。

  • 403(Forbidden)

401以外の理由でリソースを操作できないことを示します。たとえば特定のIPアドレスのみからアクセスできる場合などに用います。

んー...。これだけ見るとさっぱり分かりません。特定のIPアドレスのみから...ってそれも認証情報じゃないのかなと思ってしまいました。が、つまりはこういうことみたいです。

なるほど。

余談

  • 402(Payment Required)

このリソースを操作するには料金が必要であることを示します。

いらんことで盛り上がってしまった。反省はしていない。

ワークショップ

今回ははてなブログを見ながら「どこがRESTfulか、どうしたらRESTの規約に近づけるか」などを話し合いました。

今回は、一番大きなテーマとなったところをピックアップ。

階層構造のURLはリソースがあると期待させてしまう

たとえば http://pupupopo88.hatenablog.com/entries/2015/04/20 で2015年4月20日に投稿した記事が表示されると、「20を削除したら4月投稿した記事が全部取得出来るのでは」と考えてしまいがちです。しかし、実際にやってみると「Not Found」になってしまいました。因みに実際2015年4月に投稿した記事を取得したい場合は、「http://pupupopo88.hatenablog.com/archive/2015/4 」とするみたいです。本来なら、リダイレクトでもいいのでどちらでもアクセスできるようにしておいた方が親切ということでした。 関連して、末尾に / がある場合とない場合でアクセス出来ないものもあるので、そちらもどちらでもアクセスできるようにしておいた方が良いとのことでした。

余談

RESTの観点ではてブロを見ていたのですが、半分「仕様確認」みたいになっていました。いろんなところでiframe使っていたりとちょっと分からない仕様も多々あり「大きなサービスを長年続けていると出てくるつらみ」みたいなのが垣間見えました。以前自分が携わってたものとか思い出して、開発者の苦労を思いなんだか胸が痛かったです(´-ω-`)笑 はてなのみなさま、応援しておりますのでこれからも素敵なサービスをお願いいたします(深謝)

懇親会

後ろ髪を引かれつつ、今回は懇親会に参加せず帰路につきました。ビールテロには震えましたが、おかげさまでゆっくり休めました。また次は元気に参加できたら良いなと思います。


関係者の皆様、本当にお疲れさまでした&ありがとうございました。また次はいろいろお手伝いできたらいいな〜。