UWS as a REST protocol

Matthew Graham mjg at cacr.caltech.edu
Mon Feb 26 17:09:12 PST 2007


Hi,

You're right about the HTTP Accept header but this is difficult to set 
from a browser.

Under the current SOAP-based interface for VOSpace, representations of 
the resource have HTTP-based URIs (the endpoints for actual data 
transfers) already but the actual resource itself is identified with the 
vos-based URI and there is no problem with this. An example of what the 
REST interface could look like is:

1. POST a XML resource description to a VOSpace endpoint to create a 
node in the VOSpace;
2. POST a XML transfer description to a VOSpace endpoint to create a 
data transfer to a particular node - identified in the XML transfer 
description with vos URI - which returns a XML transfer description 
containing the negotiated details of the transfer
3. PUT data bytes to a HTTP endpoint to insert/update a representation 
of the resource

    Cheers,

    Matthew

John Taylor wrote:
>
> (getting in here before Norman Gray does)....I understand that it 
> would be more RESTful to use the http Accept header, rather than an 
> explicit FORMAT parameter.  If we were really hardcore we'd also use 
> URIs that are dereferencable using standard protocols....so VOSpace 
> resources would be name http://something rather than vos://something.  
> Is that possible Matthew, or wouldn't that be compatible with the 
> VOSpace spec?
>
> John
>
> On 26 Feb 2007, at 22:11, Matthew Graham wrote:
>
>> Hi,
>>> As a counter example, if we have an access reference such as
>>>
>>>     http://webtest.aoc.nrao.edu/ivoa-dal/JhuProxySsap?
>>>     REQUEST=getData&FORMAT=votable&PubDID=ivo%3A%2F%2Fjhu%2Fsdss...
>>>
>>> Then I suggest this is probably about as RESTful as most URLs which
>>> reference static files (so long as the dataset identifier is 
>>> persistent).
>>>
>>> The main point of REST appears to be simplicity, elegance, and reuse of
>>> standard protocols and infrastructure.
>>>
>> The main point of REST is having resources which can be accessed 
>> through a standard CRUD interface that maps onto the HTTP methods:
>>
>> CREATE = POST
>> RETRIEVE = GET
>> UPDATE = PUT
>> DELETE = DELETE
>>
>> Something like: 
>> http://somewhere.com/SomeProxy?REQUEST=delete&filename=mytable
>> is not RESTful since you're using an HTTP GET method to delete a 
>> resource. REST is by nature resource-oriented (hence the need for 
>> everything to be addressable by a URI) and not service-oriented like 
>> most CGI (HTTP GET) scripts and SOAP.
>>
>>    Cheers,
>>
>>    Matthew
>>
>



More information about the grid mailing list