fc2ブログ

makopi23のブログ

makopi23が日々の生活で感じたことを気ままに綴るブログです。

「RESTful#とは勉強会9」に参加しました

2015/8/19(水) 「RESTful#とは勉強会9」に参加してきました。

DoorKeeper
https://rubychildren.doorkeeper.jp/events/29117

最近ブログをサボリ気味なので、負荷にならない程度の書きっぷりで、復習のために今後もできるだけ書いていこうと思います。

この日の会場は永和システムマネジメントさんです。
前半はいつもどおり「Webを支える技術」の読書会、後半はRestfulに関する講演、という二段構成でした。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
山本 陽平
技術評論社
売り上げランキング: 5,348


進行役の川村さんが纏めてくださった、この日のポイントはこちら。
https://gist.github.com/tkawa/cf6f0187a5f1d54344b6
いつもありがとうございます。

■Accept-Charsetヘッダ
前回のディスカッションでも、ブラウザが自動で付与する、という話が出てました。ブラウザの設定で切り替えられるようです。
クライアントアプリを作る場合、HttpClientはOSが提供しているAPIを使って、OSの言語設定を判定して表示を切り替えている、という話もテーブルで出ました。
HttpClientはOSごとに用意されることが一般的だそうです。

■チャンク転送
このチャンク転送が、本を読んだだけではよくわからず、テーブルでディスカッションしました。しかしいまだによくわからん・・・
HTTPのセッションは貼られたまま、ずっとデータが送られる?
次回、質問してみよう・・・

■認証
ここも自分があまり理解していない部分。
まず、現在の一般的な認証方法は、サーバがトークンを発行して、それをクライアントとやりとりして認証する方法らしい。
OAuth2は一度トークンを発行したら変わらないらしい。そのため、httpsが全体なのだとか。
あと、認証が必要なサイトに未認証でアクセスがあった場合、ステータスコード401を返すようです。
OAuthは秘密キーを発行して、信頼しているサービスにしか渡さない仕組みらしく、信頼できないと後から判断した場合はその秘密キーを停止することができるそうです。
この辺の認証まわりはちゃんと勉強せなあかんなー、と思った次第。

次は@moro さんによる講演。




発表者の @moro さんがこの講演について書いたブログはこちら。
http://moro.hatenablog.com/entry/2015/08/20/081131



以下、個人メモ。

■ グランドルール
RESTfulはマスタメンテぐらいにしか使えないようなものではない!という点を主張されてました。
私、RESTfulを勉強しはじめたばっかなので、世間ではそういう認識が一般的なのかー、と驚きました。


■ DBのイベントエンティティ起点
POST /groups/42/menberships
これは、あるグループにjoinする、という操作ではなく、参加しているグループとメンバーシップの関連を作る、と考える。


■ メンバリソースの起点
例えば、下書きモードから公開モードにしたい、という場合は、
POST /articles/42/set_public ではなく、setの先を名詞形にして、「作成する」という概念を持ち込む。
POST /articles/42//publication

■ ポイント
RESTの世界観に統一することが大事。
リソースは、ユーザの役立つ単位とすること。DBの1テーブルにこだわらなくても良い。


■ Regist問題
registという英単語はない。名詞も動詞もregister。リソースの命名でよくハマる。


■ リソース設計における乖離
リソース設計を詰めていくと、createする、とか、人間同士の会話の概念と乖離することが多い。
例えば人間同士なら動詞で表現するところを、名詞ベースで考えたりとか。
⇒ これは、間に一回設計を挟む、と考える。設計として、動詞を名詞に置き換える、という作業を行う。

■ 感想:
今回も新しい学びが多くて大変有意義でした。
2本立ては良いですね。マンネリ化しなくて済むし、深堀できるし。講演、とても勉強になりました。

皆様、ありがとうございました。
関連記事

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://makopi23.blog.fc2.com/tb.php/180-5c3fc225
この記事にトラックバックする(FC2ブログユーザー)

-->