Q. 単にRESTじゃダメなの?
A. ダメ。理由は3つ。
A. まず、RESTはアーキテクチャではない。だから、本書で提案するアーキテクチャをRESTとは呼べない。
Q. …アーキテクチャって?
A. 明確な定義こそないものの、本書では「アーキテクチャ」を「基本設計」の意味で使っている。RESTは基本設計ではなく、一連の設計条件だ(ULCODC$SS)。
Q. 用語を作る理由の2つめは?
A. ROAは、RESTの空白部分を補うものだから、RESTとは呼べない。
Q. kwsk
A. 最後の理由。「REST」は宗教戦争用語だから、使いたくない。
Q. mjsk
Q. おとなの知恵だな…
Q. ちょっと待った! なんでいきなりリソースの話になるの? そりゃROAだからResourceの話が出るのは分かるけど、「RESTfulなWebサービスの基本設計」が「リソース指向」になる脈略が分からない。
A. Roy Fieldingの論文は読んだかい? 「5.2.1 Data Elements」に「REST components communicate by transferring a representation of a resource」とある。
A. つまり、「REpresentational State Transfer」(REST)の「State」とは、「リソースの状態」のことなんだ。
Q. なるほど。じゃあ、リソースの定義を教えれ。
Webにおいて、リソースがリソースであるためには、URIを少なくとも1つは持っていなければならない。
希薄化を回避するには、1つのURIを正規URIとし、非正規URIへのアクセス時に下記いずれかの処理を行う。
Q. 先生! その「アドレス可能性」は、RESTのどの設計条件から導けるんですか?
A. 「ULCODC$SS」の「$」(Cache)制約から導けるという理解で良いんじゃないだろうか。
セッションIDをCookieやURIに埋め込むと、ステートレス性が無効(ステートフル)になる。
サーバーはリソースを特定のファイル形式と特定の言語で送信しなければならない。このときのファイル形式や言語のことを「表現」と呼ぶ。
言語以外にも表現の選択に使われるメタデータがある。
Q. 先生、ごぶさたです! その「接続性」は、RESTのどの設計条件から導けるんですか?
A. 「ULCODC$SS」の「L」(Layered)制約から導けるという理解で良いと思う。接続性が低ければ、クライアントがサーバのURI構成を知っている必要がある。「システムの知識を単一階層に限る」のがLayered制約。
以上
ありがとうございました!
Q. 単にRESTじゃダメなの?
A. ダメ。理由は3つ。
A. まず、RESTはアーキテクチャではない。だから、本書で提案するアーキテクチャをRESTとは呼べない。
Q. …アーキテクチャって?
A. 明確な定義こそないものの、本書では「アーキテクチャ」を「基本設計」の意味で使っている。RESTは基本設計ではなく、一連の設計条件だ(ULCODC$SS)。
Q. 用語を作る理由の2つめは?
A. ROAは、RESTの空白部分を補うものだから、RESTとは呼べない。
Q. kwsk
A. 最後の理由。「REST」は宗教戦争用語だから、使いたくない。
Q. mjsk
Q. おとなの知恵だな…
Q. ちょっと待った! なんでいきなりリソースの話になるの? そりゃROAだからResourceの話が出るのは分かるけど、「RESTfulなWebサービスの基本設計」が「リソース指向」になる脈略が分からない。
A. Roy Fieldingの論文は読んだかい? 「5.2.1 Data Elements」に「REST components communicate by transferring a representation of a resource」とある。
A. つまり、「REpresentational State Transfer」(REST)の「State」とは、「リソースの状態」のことなんだ。
Q. なるほど。じゃあ、リソースの定義を教えれ。
Webにおいて、リソースがリソースであるためには、URIを少なくとも1つは持っていなければならない。
希薄化を回避するには、1つのURIを正規URIとし、非正規URIへのアクセス時に下記いずれかの処理を行う。
Q. 先生! その「アドレス可能性」は、RESTのどの設計条件から導けるんですか?
A. 「ULCODC$SS」の「$」(Cache)制約から導けるという理解で良いんじゃないだろうか。
セッションIDをCookieやURIに埋め込むと、ステートレス性が無効(ステートフル)になる。
サーバーはリソースを特定のファイル形式と特定の言語で送信しなければならない。このときのファイル形式や言語のことを「表現」と呼ぶ。
言語以外にも表現の選択に使われるメタデータがある。
Q. 先生、ごぶさたです! その「接続性」は、RESTのどの設計条件から導けるんですか?
A. 「ULCODC$SS」の「L」(Layered)制約から導けるという理解で良いと思う。接続性が低ければ、クライアントがサーバのURI構成を知っている必要がある。「システムの知識を単一階層に限る」のがLayered制約。
以上
ありがとうございました!