...
These objects would then define the following URIs and interaction model:
*http://example.org/fedora/services/thought-exp:ImageCollection/atom:Domain/feeds*
GET - Service Document containing all image collection feeds.
*
Code Block | ||||
---|---|---|---|---|
| ||||
<service xmlns="http:// |
...
www.w3.org/ |
...
GET - Service Document containing all object datastream feeds. This could possibly be a very large list, resulting in a ginormous Service Document Unlike atom feeds, I don't believe one can implement pagination for this document.
...
2007/app" xmlns:atom="http://www.w3.org/2005/Atom"> <workspace> <atom:title>Image Collections</atom:title> <collection href="http://example.org/fedora/services/ |
...
demo:SmileyStuff/thought-exp:ImageCollection/ |
...
GET - Service document for one image collection. Service documents may enumerate the acceptable content types, so an image collection may list off supported image formats (such as image/png, image/jpeg, etc
...
feed"> <atom:title>Smiley Stuff Images</atom:title> <accept>image/jpeg</accept> </collection> <collection href="http://example.org/fedora/services/ |
...
demo:FrownyStuff/thought-exp:ImageCollection/feed |
...
" >
<atom:title>Frowny stuff</atom:title>
<accept>image/png</accept>
<accept>image/jpeg</accept>
<accept>image/gif</accept>
</collection>
</workspace>
</service>
|
http://example.org/fedora/services/thought-exp:Datastream/atom:Domain/feeds
GET - Service Document containing all object datastream feeds. This could possibly be a very large list, resulting in a ginormous Service Document Unlike atom feeds, I don't believe one can implement pagination for this document.
http://example.org/fedora/services/(PID)/thought-exp:ImageCollection/service
GET - Service document for one image collection. Service documents may enumerate the acceptable content types, so an image collection may list off supported image formats (such as image/png, image/jpeg, etc
Code Block | ||||
---|---|---|---|---|
| ||||
<service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
<workspace>
<atom:title>Image Collections</atom:title>
<collection href="http://example.org/fedora/services/demo:SmileyStuff/thought-exp:ImageCollection/feed">
<atom:title>Smiley Stuff Images</atom:title>
<accept>image/jpeg</accept>
</collection>
</workspace>
</service>
|
http://example.org/fedora/services/(PID)/thought-exp:ImageCollection/feed
GET - Get an atom feed of all images in a collection represented by the PID object.
Code Block | ||||
---|---|---|---|---|
| ||||
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Smiley Stuff Images</title>
<link href="http://example.org/fedora/services/demo:SmileyStuff/thought-exp:ImageCollection/feed" rel="self"/>
<updated>1980-03-20T09:15:02Z</updated>
<author>
<name>Chis Wilper</name>
</author>
<id>info:fedora/demo:SmileyStuff/thought-exp:ImageCollection</id>
<entry>
<title>Smiley Toilet Brush</title>
<id>info:fedora/demo:SmileyToiletBrush/thought-exp:ImageItem</id>
<updated>1979-10-07T17:17:08Z</updated>
<content type="image/png"
src="http://example.org/fedora/services/demo:SmileyToiletBrush/thought-exp:ImageItem/media"/>
<link rel="edit-media"
href="http://example.org/fedora/services/demo:SmileyToiletBrush/thought-exp:ImageItem/media" />
<link rel="edit"
href="http://example.org/fedora/services/demo:SmileyToiletBrush/thought-exp:ImageItem/entry" />
</entry>
</feed>
|
POST - Accept only media items (i.e. images in supported formats). A POSTed image would cause the following to happen:
- Create Fedora object for new item created
- If the 'Slug' header is defined, possibly assign object a NEW_PID derived from that
- Return an ATOM entry found at: http://example.org/fedora/services/(NEW_PID)/thought-exp:ImageItem/entry
http://example.org/fedora/services/(PID)/thought-exp:ImageItem/media
GET - Get an image
PUT - Replace an image. The item's 'entry' link will reflect the update
http://example.org/fedora/services/(PID)/thought-exp:ImageItem/entry
GET - Get the entry
Code Block | ||||
---|---|---|---|---|
| ||||
<entry xmlns="http://www.w3.org/2005/Atom">
<title>Smiley Beer Glass</title>
<id>info:fedora/demo:SmileyBeerGlass/thought-exp:ImageItem</id>
<updated>1979-10-07T17:17:08Z</updated>
<content type="image/png"
src="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:ImageItem/media"/>
<link rel="edit-media"
href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:ImageItem/media" />
<link rel="edit"
href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:ImageItem/entry" />
</entry>
|
PUT - Replace entry metadata
http://example.org/fedora/services/(PID)/thought-exp:Datastreams/service
GET - Service document for one object. Service documents may enumerate the acceptable content types.. perhaps it makes sense to introspect in the object's models, but it may be more flexible not to enumerate anything at all, if that's possible.
http://example.org/fedora/services/(PID)/thought-exp:Datastreams/feed
GET - Get an atom feed of all datastreams and versions represented by the PID object.
GET - Get an atom feed of all images in a collection represented by the PID object.
Code Block | ||||
---|---|---|---|---|
| ||||
<feed xmlns="http://www.w3.org/2005/Atom">
<title>demo:SmileyBeerGlass datastreams</title>
<link href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastreams/feed" rel="self"/>
<updated>1980-03-20T09:15:02Z</updated>
<author>
<name>Chis Wilper</name>
</author>
<id>info:fedora/demo:SmileyBeerGlass/thought-exp:Datastreams</id>
<entry>
<title type="text">RELS-EXT</title>
<id>info:fedora/demo:SmileyBeerGlass/thought-exp:Datastream/RELS-EXT</id>
<updated>1979-10-07T17:17:08Z</updated>
<content type="application/rdf+xml"
src="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastream/media?id=RELS-EXT"/>
<link rel="edit-media"
href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastream/media?id=RELS-EXT" />
<link rel="edit"
href="http://example.org/fedora/services/demo:SmileyBeerGlass/thought-exp:Datastream/entry?id=RELS-EXT" />
</entry>
<entry xmlns:thr="http://purl.org/syndication/thread/1.0">
<title type="text">RELS-EXT.0</title>
<id>info:fedora/demo:SmileyBeerGlass/thought-exp:Datastream/RELS-EXT.0</id>
<updated>1979-10-07T17:17:08Z</updated>
<thr:in-reply-to ref="info:fedora/demo:SmileyBeerGlass/thought-exp:Datastream/RELS-EXT"/>
<content type="application/rdf+xml"
src=" |
...
GET - Get an atom feed of all images in a collection represented by the PID object.
POST - Accept only media items (i.e. images in supported formats). A POSTed image would cause the following to happen:
- Create Fedora object for new item created
- If the 'Slug' header is defined, possibly assign object a NEW_PID derived from that
- Return an ATOM entry found at: http://example.org/fedora/services/(NEW_PID)/thought-exp:ImageItem/entry
*http://example.org/fedora/services/(PID)/thought-exp:ImageItem/media*
GET - Get an image
PUT - Replace an image. The item's 'entry' link will reflect the update
...
http://example.org/fedora/services/ |
...
demo:SmileyBeerGlass/thought-exp: |
...
GET - Get the entry
PUT - Replace entry metadata
*http://example.org/fedora/services/(PID)/thought-exp:Datastreams/service*
GET - Service document for one object. Service documents may enumerate the acceptable content types.. perhaps it makes sense to introspect in the object's models, but it may be more flexible not to enumerate anything at all, if that's possible.
...
Datastream/media?id=RELS-EXT&version=1979-10-07T17:17:08Z"/> <link rel="edit" href="http://example.org/fedora/services/ |
...
demo:SmileyBeerGlass/thought-exp:Datastream/entry?id=RELS-EXT&version=1979-10-07T17:17:08Z" />
</entry>
</feed>
|
...
GET - Get an atom feed of all datastreams and versions represented by the PID object.
POST - Accept datastream content. POSTed data would cause the following to happen:
- Create a new datastream
- If the 'Slug' header is defined, assign object a datastream ID based on (identical to?) that.
- Return an ATOM entry found at: http://example.org/fedora/services/(PID)/thought-exp:Datastream/entry?id=DSID?version=XYZ, where 'DSID' is the datastream ID and 'version' is the datastream's version. entry shall have edit-media link pointing to unversioned datastream media URI.
...
\*http://example.org/fedora/services/(PID)/thought-exp:Datastream/media?id=DSID\[(&version=2008...\]\*)
GET - Get the datastream content
PUT - Put new datastream content (return an error if version is specifed??)
\*http://example.org/fedora/services/(PID)/thought-exp:Datastream/entry?id=DSID\[(&version=2008...\]\*) Wiki Markup
GET - Get entry medatata
PUT - Modify entry metadata (Not sure what consequences are...)
page is unfinished. Need to put in discussion and examples, questions/implications, and basic conclusion as to whether this makes sense, and if it truly adds any value to, say, an external APP service.