Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This document was originally produced on June 19, 2007 by MediaShelf, LLC in collaboration with the Fedora Team and the RUBRIC project The original version of the document is available at http://www.yourmediashelf.com/reference/fedora/webservices/REST%20Proposal%20-%20v1.1.pdfImage Removed

Overview

The Problem Space

...

For example, calling this URL

Wiki Markup
<span class="s2">\[http://[host
(
|http://%5Bhost%5D:%5Bport%5D/fedora/objects/demo:1/DC/edit
)
]:[FEDINFO:port]/fedora/objects/demo:1/DC/edit\]</span>

or

Wiki Markup
<span class="s2">\[http://[host
(
|http://%5Bhost%5D:%5Bport%5D/fedora/objects/demo:1/DC;edit
)
]:[FEDINFO:port]/fedora/objects/demo:1/DC;edit\]</span>

will call up the editor for the DC datastream on demo:1. By default, this editor would look similar to the "Datastream" tab in Fedora's swing-based admin GUI, but could be overridden to provide a specialized form for editing that datastream. In the fashion of the upcoming Content Model Dissemination Architecture (CMDA), one could associate specialized forms with a content model object. For all objects subscribing to that content model, special forms will be displayed rather than the default form.

...

===<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /objects*</span>h2.

PUT, POST: Create Object (auto-assign pid)

...

<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /objects/pid*</span>===

PUT: Create Object

<span class="s5">Parameters: </span>message body pidNamespace format logMessage

...

===<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /objects/pid;edit*</span>=h1.

Retrieve editor view for the object identified by pid

...

DELETE (return error)

Note _from Matt_

No Format

: using ;edit rather than /edit prevents conflicts with datastreams with dsid of "edit". However, it might actually be convenient to use /edit. That way, administrators could override the default "edit" view by creating a datastream with a dsId "edit"


*Datastreams*h1.

=<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /datastreams/pid OR /objects/pid/datastreams*h2.

PUT, POST: Create or Update Datastream (auto assign dsID)

...

<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /datastreams/pid/dsId OR /objects/pid/dsid*===

PUT: Create or Update Datastream

...

===<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /datastreams/pid/dsId;edit _OR _/objects/pid/dsId;edit*=h1.

Retrieve editor view for the datastream identified by dsId within the object identified by pid.

...

=<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /disseminators/pid*</span>===

PUT, POST: Create Disseminator (auto assign dissID)

...

===<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /disseminators/pid/dissId*===

PUT: Create Disseminator

<span class="s5">Parameters: </span>message body bDefPid bMechPid dissLabel bindingMap dissState logMessage<span class="s5">  </span>

...

===<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /objects/pid/bdefPid/method*=h1.

GET: Retrieve Dissemination Results

...

=<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /relationships/pid*</span>h2.

<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /relationships/pid*</span>===

PUT: Create Relationship

<span class="s5">Parameters: </span>message body predicate target

...

===<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /repository*</span>=h1.

GET: Get Repository Info

Parameters: (none)

...

=<span class="s6" style="color:#999999">

No Format

http://[host]:[port]/fedora

</span><span class="s4">* /users/user*</span>=h1.

GET: Get User Info

Parameters: (none)

...

Following the pattern of the fedora:ADMIN-VIEWS object, administrators can create any number of alternate "edit" views and bind them to objects or content models via disseminators. In this way, the default administrative user interface serves as a reference example for administrators and developers who wish to create custom editor views.

_Issue_

No Format

: Should there be the opportunity to return alternate views depending on user role? How could we implement this?


_Issue: _Should the distro versions of the view be stored outside of the datastore?

...

Solution 1<span class="s5">_

No Format

:

_</span>
/objects/pid/datastreams

PUT (auto assign dsID)

...

GET (getDatstreams) ? list

_Conclusion_

No Format

: Use both.


2) Referring to existing relationships (for update and purge)

...