- From: Marc Hadley <Marc.Hadley@Sun.COM>
- Date: Thu, 08 Jun 2006 10:24:16 -0400
- To: public-web-http-desc@w3.org
A number of folks have pointed out that it would be useful to be able to describe the linkages between described resources in addition to the HTTP methods that can be applied to those resources and the representation formats supported. Whilst it would be possible at runtime to compare a URI with the URIs of all of the resources in a description to identify a match, I think it would be preferable to be able to specify the resource targeted by a link up front where that information is known. This can be achieved in WADL by adding a new element to the language: <link>. The <link> element can be used as a child of the existing <representation_variable> element and is used to indicate that the value of a representation component is a link to a described resource. The <link> element is syntactically similar to the HTML <link> element but differs semantically in that its href attribute identifies a <resource> element rather than a linked document. The parent <representation_variable> element identifies that part of the representation that contains the link. E.g. If an application consists of the resources: http://example.com/widgets http://example.com/widgets/{widgetid} (where {widgetid} is a variable component to the URI) and a GET on the first resource gets me a WidgetList: <eg:WidgetList xmlns:eg="..."> <eg:Widget uri="http://example.com/widgets/xyzzy1"/> <eg:Widget uri="http://example.com/widgets/abccb1"/> ... </eg:WidgetList> such that eg:Widget/@uri links to one of the "http://example.com/ widgets/{widgetid}" resources, then this can be described as follows: <application xmlns:...> <resources base="http://example.com/"> <resource uri="widgets"> <method href="#widgetList"/> <resource id="widgetResource" uri="{widgetid}"> ... </resource> </resource> </resources> <method name="GET" id="widgetList"> <response> <representation mediaType="application/xml" element="eg:WidgetList"> <representation_variable path="/Widgets/Widget/@uri" repeating="true"> <link href="#widgetResource" rel="child" rev="index"/> </representation_variable> </representation> </response> </method> </application> The values of the rel and rev attributes are an open set including those used by convention in HTML. Similar to HTML, a profile attribute may be added to the application element to define a namespace for additional link types. Thoughts, comments ? Marc. --- Marc Hadley <marc.hadley at sun.com> Business Alliances, CTO Office, Sun Microsystems.
Received on Thursday, 8 June 2006 14:24:38 UTC