Webサービスに関する基本的な技術を体系的によくまとめている良書、「Webを支える技術」を読み終わったのでメモとしてまとめてみたものである。こういう良書を読むと、体系的に技術を学ぶには本が最適だなと思う。
1. RESTの概念
1.1 RESTとは何か?
RESTとは、Webアーキテクチャスタイルの一つである。REST = Representational State Transfer、リソース状態の転送。つまり、Webサービス・WebAPIをリソースに対する操作という思想で設計しているという考え方だ。
そのため、通常Webサービス・WebAPIはGET/POSTが主になるが、リソースに対する操作ということでDELETEやPUTといったメソッドも使用する。Web上に存在するリソースに対して、CRUD操作(追加・読込・変更・削除)を実現するということである。それらの操作をWebサービス・WebAPIとして提供するということだ。
2.URI
Webを支える技術の一つ。Webは、HTTP、URI、HTMLといった3つのアーキテクチャで支えられている。
2.1 URIとは?
URI=Uniform Resource Identifier、つまりリソースを統一的に識別するIDのことである。このURIにより、Web上に存在するリソースは一意に識別出来る。
形式は、プロトコル名+ : + // + [ユーザ名:パスワード@] + ホスト名 + リソースへのパス
ユーザ名とパスワードは省略可能だ。
例)
→ http + : + // + homepage3.nifty.com +/jis/
- file:///Users/newWell/Documents/MyWeb/Jis/index.html
→ file + : + // + [localhost] + /Users/newWell/Documents/MyWeb/Jis/index.html
→ ホスト名を省略している
日本語のリソースも指定することが可能。その場合は、%エンコーディングで指定する(対応する文字コードのバイトを%区切りで指定するやり方)。
例) あ → %E3%81%82 (UTF-8)
ただし、%エンコーディングは、文字コードの指定が出来ないため(UTF-8やEUC等明示する方法がない)、通常はUTF-8にしておくのが望ましい。
2.2 よいURIとは?
よいURIとは、変わりにくいものである。
駄目な例を以下に示す
- /cgi-bin/XXX.pl、/servlet/XXXX
開発言語・環境に依存したURIを含めているので駄目。実装環境が変わるとURIも変わってしまう。cgiからJavaに変えた場合等。
- login.do?action=showPage
メソッド名をURIに含めているので駄目。メソッド名が変わるとURIまで変わってしまう。
よいURIを設計する指針を以下に示す。
- URIにプログラミング言語依存の拡張子を利用しない(.pl,.rb,.do,.jsp等)
- URIに実装依存のパス名を利用しない(cgi-bin,servlet等)
- URIにプログラミング言語のメソッド名を利用しない
- URIにセッションIDを含めない
- URIはそのリソースを表現する名詞にする
→ 参照の場合は、そのリソースのID(データベース上の主キー等)
Apatchのmod_rewriteでユーザ向きのURIと内部向けのURIを使い分けるというのも一つの手。この場合、ユーザ向きのURIは極力実装依存の部分を除くのがポイント。
参考文献
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 136人 クリック: 4,181回
- この商品を含むブログ (160件) を見る