|
Page Edited :
ODExSITE :
WSDL 1.1 Extensions for REST
WSDL 1.1 Extensions for REST has been edited by Alexis Midon (Jul 16, 2008). Content:WSDL 1.1 Extensions for better HTTP/REST descriptionThe Resource-Oriented Architecture defines four concepts:
and four properties:
HTTP binding as defined in WSDL 1.1 is not well suitable to implement these concepts and properties, mainly because a port type may access 4 different locations/resources but with only one HTTP method. To better describe RESTful services, and turn a port type into a "resource type", ODE brings a set of 4 extensions:
Further details below. One verb per operationAccording to the WSDL 1.1 specification, the verb describing the HTTP method has to be at the binding level So, this extension is to push down the HTTP verb at the operation level. And if an operation does not have its own verb, then the verb defined at the binding level will be used.See a complete example below. URI TemplateA RESTful service exposed a set of resources, each of them being accessible through a uniform interface: the HTTP methods. So we need a way to define four operations (at most) for a single resource. Moreover it's very likely that the resource URI actually describes a set of resources. For instance, the set of issues contained in the Apache bug tracker: http://issues.apache.org/jira/browse/\{issue_id}. HTTP binding offers the http:operation <service name="">
<port name="" binding="">
<http:address location="http://issues.apache.org"/>
</port>
</service><binding name="" type=""> <http:binding verb=""/> <operation name="foo"> <http:operation location="jira/browse/(issue_id)"/> <input> <http:urlReplacement/> </input> <output/> </operation> </binding> However, here 3 issues show up:
To solve this, ODE allows http:operation In addition, the http:urlReplacement is relaxed: all parts are not required in the URI template anymore. One part could go into the URI, another into the request body. <service name="">
<port name="" binding="">
<http:address location="http://issues.apache.org/jira/browse/{issue_id}"/>
</port>
</service>
<binding name="" type="">
<operation name="PUT">
<!-- location attribute intentionally blank -->
<http:operation location=""/>
<odex:binding verb="PUT"/>
<input>
<http:urlReplacement/>
<mime:content type="text/xml" part="issue_content"/>
</input>
<output/>
</operation>
</binding>
Access to HTTP HeadersFault Support |
Unsubscribe or edit your notifications preferences
