|
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 appear:
To solve this, ODE allows http:operation In addition, the http:urlReplacement is relaxed and does not require all parts to be mentioned in the URI template. 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="">
<http:binding verb=""/>
<operation name="foo">
<!-- location attribute intentionally blank -->
<http:operation location=""/>
<input>
<http:urlReplacement/>
</input>
<output/>
</operation>
</binding>
Access to HTTP HeadersFault Support |
Unsubscribe or edit your notifications preferences
