2012-12-11から1日間の記事一覧

Private Resource (Namespace) パターン

/my /my/{resource} どのようなパターン? Singular Resource パターンの特別な場合で、「自分自身」を指すリソース。 人(セッション)によって違うリソースを指すことを明示するために名前空間を分ける、という用法に着目する場合は、Private Namespace パ…

Session Resource パターン

PUT /session (→ログイン) DELETE /session (→ログアウト) どのようなパターン? 認証のセッション自体をリソースととらえる。Railsでいう「モデル」ではないリソースの典型例。 Railsの認証Gemを使った設計例ではすでに一般的に採用されている。 Devise…

Transaction Resource パターン

POST /transactions ↓ PUT /transactions/123 ↓ PUT /transactions/123/committed 「Webを支える技術」p278より引用 実際のシステムでは、より複雑な処理、たとえば複数のリソースにまたがった変更をひとまとまりに扱う、いわゆるトランザクションが必要にな…

Partial Resource パターン

/users/123/name,email /users/123?fields=name,email リソースの部分取得、部分更新のために一部の属性(フィールド)だけを提供するもの。 Multi-member Resource パターンと形が似ているが、Multi-member Resource パターンは複数のメンバーリソースを列…

Multi-member Resource パターン

/users/123,124 /users/123-133 メンバーリソースの派生形。複数のメンバーリソースを一度に取得、更新、削除するために使用できる。 前者の列挙型であればどんなIDでも利用できるが、後者の範囲型は数値などの限られたIDでしか利用できない。 使用メソッド …

Filtered Subresource パターン

/users/admin Filtered Collection パターンのうち、汎用的なものであれば、子リソースとしても表現できる。コレクションリソースの一種。 ただし、メンバーリソースのIDと衝突する可能性があるので注意しなければならない。(これも補助リソースのように命…

Filtered Collection パターン

/users?role=admin /users?page=2 /users?since_id=123 どのようなパターン? コレクションリソースにアルゴリズムリソースを組み合わせて用いる形。 コレクションリソースから、クエリパラメータの値を条件として絞り込んだリソースを表す。 RailsのGemでは…

Singular (Singleton) Resource パターン

/profile どのようなパターン? 同じ種類がたくさんあるコレクションリソースに対して、ただ1つしかないリソース(単数リソース)のパターン。 使用メソッドとの組み合わせ Railsのアクション名を例に挙げる。 GET POST PUT DELETE /{name} show create upda…

Collection & Member Resource パターン

/users /users/123 どのようなパターン? コレクションリソースとメンバーリソースの2種類のリソースをひとまとめとして扱い、使用するメソッドを限定する。 コレクションリソースがFactoryの役割も果たす。 Railsのリソース設計では基本となるパターンであ…