エントリー資源

メンバー (HTTP)

仕様書

コレクションメンバー

[7] コレクションメンバー (member) は、 コレクション内部メンバーや、再帰的に内部メンバーメンバーを指します。 すなわち、コレクションの「子孫」です。 >>6

[8] コレクションメンバーURL (member URL) は、 コレクション自体の内部メンバーURLか、 コレクションメンバー内部メンバーURLです >>6

メンバー資源

[1]

成員 (member) (または 成員資源 (member resource) )
IRI集成中に atom:link 要素関係 edit または edit-media で列挙されている資源。9.1節参照。Atom Protocol は2種類の成員を定義しています。

仕様書:

メンバー URI

[201] クライアントメンバー (Member) URI を使って成員資源取り出し編集削除できます。成員URIPOST を使って資源を作成するのに成功した場合の Location: 頭欄や、集成フィード中のエントリー関係 editatom:link に現れます。 AtomPub

[202] 成員エントリーリンク関係edit であって成員URI を表す atom:link を含むべきですAtomPub

列挙

[2] 集成成員の列挙には集成に対して GET 要求を使います。 詳しくは集成フィードの項を参照してください。

取り出し

[3] 成員資源 (の表現) を取り出しするには、 クライアント成員資源URI について GET 要求を送信します。はそれに対して成員資源表現応答します。 AtomPub

[208] 実装者は、キャッシュ制御実体札などを適当に使うように注意するべきです。 キャッシュが介在している場合には、 GET で得られた表現が最新のものとは限りません。 AtomPub

[207] 仕様書:

[209] AtomPub 仕様書より:

まず、 POST成員エントリーを作成します。

       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 があります。