[7] コレクションのメンバーは、 コレクションの内部メンバーや、再帰的に内部メンバーのメンバーを指します。 すなわち、コレクションの「子孫」です。 >>6
[8] コレクションのメンバーURLは、 コレクション自体の内部メンバーURLか、 コレクションのメンバーの内部メンバーURLです >>6。
- 成員 (または 成員資源)
- IRI が集成中に
atom:link要素で関係editまたはedit-mediaで列挙されている資源。9.1節参照。Atom Protocol は2種類の成員を定義しています。
- エントリー資源: RFC 4287 に定義されている通り、 Atomエントリー文書で表現されている集成の成員。
- 媒体資源: Atomエントリー文書以外の表現を持つ集成の資源。
仕様書:
[201] クライアントは メンバー URI を使って成員資源を取り出し、
編集、削除できます。成員URI は POST
を使って資源を作成するのに成功した場合の Location:
頭欄や、集成フィード中のエントリーの関係 edit
の atom:link に現れます。
AtomPub
[202] 成員エントリーはリンク関係が edit
であって成員URI を表す atom:link を含むべきです。
AtomPub
[3] 成員資源 (の表現) を取り出しするには、
クライアントは成員資源の URI について GET
要求を送信します。鯖はそれに対して成員資源の表現を応答します。
AtomPub
[208] 実装者は、キャッシュ制御や実体札などを適当に使うように注意するべきです。
キャッシュが介在している場合には、 GET
で得られた表現が最新のものとは限りません。
AtomPub
[207] 仕様書:
POST /myblog/entries HTTP/1.1
Host: example.org
Authorization: Basic ZGFmZnk6c2VjZXJldA==
Content-Type: application/atom+xml;type=entry
Content-Length: nnn
Slug: First Post
<?xml version="1.0" ?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Atom-Powered Robots Run Amok</title>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2007-02-123T17:09:02Z</updated>
<author><name>Captain Lansing</name></author>
<content>It's something moving... solid metal</content>
</entry> HTTP/1.1 201 Created
Date: Fri, 23 Feb 2007 21:17:11 GMT
Content-Length: nnn
Content-Type: application/atom+xml;type=entry
Location: http://example.org/edit/first-post.atom
Content-Location: http://example.org/edit/first-post.atom
ETag: "e180ee84f0671b1"
<?xml version="1.0" ?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Atom-Powered Robots Run Amok</title>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2007-02-123T17:09:02Z</updated>
<author><name>Captain Lansing</name></author>
<content>It's something moving... solid metal</content>
</entry>Location: と Content-Location:
の値が一致しているので、この応答実体は作成された資源の表現そのものです。
応答実体には ETag: も指定されていて、
この実体札を次に条件付GET を行う場合に用いることができます。
GET /edit/first-post.atom HTTP/1.1
Host: example.org
Authorization: Basic ZGFmZnk6c2VjZXJldA==
If-None-Match: "e180ee84f0671b1"
エントリーが変更されていない場合には、 304 応答が返されます。
HTTP/1.1 304 Not Modified
Date: Sat, 24 Feb 2007 13:17:11 GMT
さて、クライアントがエントリーを変更し、それを
PUT するとします。
PUT /edit/first-post.atom HTTP/1.1
Host: example.org
Authorization: Basic ZGFmZnk6c2VjZXJldA==
Content-Type: application/atom+xml;type=entry
Content-Length: nnn
If-Match: "e180ee84f0671b1"
<?xml version="1.0" ?>
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Atom-Powered Robots Run Amok</title>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2007-02-24T16:34:06Z</updated>
<author><name>Captain Lansing</name></author>
<content>Update: it's a hoax!</content>
</entry>ここで If-Match: 欄に先程の実体札が指定されていますから、
鯖でエントリーが変更されていなければ PUT によりエントリーは更新されますが、
変更されている場合には 412 応答が返されます。
HTTP/1.1 412 Precondition Failed
Date: Sat, 24 Feb 2007 16:34:11 GMT
[4]
成員資源 (の表現) を編集するには、クライアントは成員資源の URI
(成員URI) について PUT 要求を、蓄積する表現と共に行います。
それに対して鯖は、要求が成功すれば状態符号
200 で応答します。
AtomPub
[204] クライアントは、意図せぬデータの損失を防ぐため、成員エントリーや成員リンク・エントリーの編集の際には外来マーク付けも含めて変更しようとしていないメタデータをすべて保持するべきです AtomPub。
[203] 仕様書:
[5]
成員資源を削除するには、クライアントは成員資源の URI
について DELETE 要求を送信します。
それに対して鯖は、要求が成功すれば状態符号
200 で応答します。
AtomPub
[206] 媒体リンク・エントリーを削除したら、 対応する媒体資源も削除されるべきです。 AtomPub
[205] 仕様書:
[414] >>413 は「メンバー資源」という用語を定義しています。
[415] Web Linking にはメンバー資源に相当するものを表すリンク関係型 item
があります。