Powered by OPF
OPF WIKI STATIC ARCHIVE
2,681 pages · 153 spaces · 776 tags · 4,025 history records · 96.2% of the original wiki recovered
Archived copy. This page was recovered from the Internet Archive snapshot of /display/SP/HTTP-based RESTful and RPC APIs taken on 2019-07-21. The original wiki at wiki.opf-labs.org is being decommissioned.

HTTP-based RESTful and RPC APIs

Created by Andrew Jackson on Aug 04, 2011 · last edited by Andrew Jackson · on Aug 04, 2011 (view history)

To enable a wide range of integration approaches, we wish to have a flexible HTTP-based API that allows preservation actions to be discovered and invoked. We attempt to follow the RESTful style of invocation as far as possible, but extend it using a simple RPC API where appropriate. Essentially, we wish to declare Preservation Actions as resources that can be discovered and invoked from HTTP, but that invocation itself is fundamentally an remote procedure call, and does not fit easily into a RESTful model.

For example, migration of another resource. This should create a new resource, but we wish to support complex parameters over GET as well as POST, so it is not strictly RESTful.

RPC workflow:

The above is a sketch. It is not RESTful, in for example the GET action can be used to create new resources, by acting as a direct resource proxy. However, it attempts to conform to the http://en.wikipedia.org/wiki/Representational_State_Transfer#Constraints constraints as far as is possible. In particular, care should be taken to ensure that proxied results are cacheable.
http://en.wikipedia.org/wiki/Remote_procedure_call