here is a sample Weather.wsdl2. Please let me know if you need any clarifications.
<description xmlns="http://www.w3.org/ns/wsdl" targetNamespace="http://example.axis2.apache.org" xmlns:tns="http://example.axis2.apache.org" xmlns:wsoap="http://www.w3.org/ns/wsdl/soap" xmlns:whttp="http://www.w3.org/ns/wsdl/http" xmlns:xsd1="http://example.axis2.apache.org/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <documentation> Just a sample service to explain WSDL 2.0 semantics </documentation> <types> <xs:schema elementFormDefault="qualified" targetNamespace="http://example.axis2.apache.org/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://example.axis2.apache.org/xsd"> <xs:element name="weather" type="xsd1:weatherStructType"/> <xs:complexType name="weatherStructType"> <xs:sequence> <xs:element name="temparature" type="xs:int"/> <xs:element name="sky" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="location" type="xsd1:locationStructType"/> <xs:complexType name="locationStructType"> <xs:sequence> <xs:element name="country" type="xs:string"/> <xs:element name="city" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="response" type="xs:string"/> <xs:element name="weatherFault" type="xsd1:weatherFaultStructType"/> <xs:complexType name="weatherFaultStructType"> <xs:sequence> <xs:element name="Fault" type="xs:string"/> <xs:element name="country" type="xs:string"/> <xs:element name="city" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="weatherDetails" type="xsd1:weatherDetailsStructType"/> <xs:complexType name="weatherDetailsStructType"> <xs:sequence> <xs:element name="weather" type="xsd1:weatherStructType"/> <xs:element name="location" type="xsd1:locationStructType"/> </xs:sequence> </xs:complexType> </xs:schema> </types> <interface name="Weather"> <documentation> This is where the abstract descriptions of the operations are given. Note that WSDL 2.0 has the concept of reusing faults, hence they are described at the interface level. </documentation> <fault name="weatherFault" element="xsd1:weatherFault"></fault> <operation name="getWeather" pattern=" http://www.w3.org/ns/wsdl/in-out"> <input element="xsd1:location"/> <output element="xsd1:weather"/> <outfault ref="tns:weatherFault"/> </operation> <operation name="setWeather" pattern=" http://www.w3.org/ns/wsdl/in-out"> <input element="xsd1:weatherDetails"/> <output element="xsd1:response"/> <outfault ref="tns:weatherFault"/> </operation> </interface> <binding name="WeatherHTTPBinding" interface="tns:Weather" type="http://www.w3.org/ns/wsdl/http"> <documentation> This binding binds the weather interface to RESTish style invocations. NOTE : The URL for the operation is constracted by resolving the httplocation against the base uri. e.g. If the country was srilanka and the city was colombo then the URL will be http://example.org/WeatherService/WeatherServiceSOAPEndpoint/Weather/srilanka/colombo </documentation> <fault ref="tns:weatherFault" whttp:code="402"/> <operation ref="tns:getWeather" whttp:method="GET" whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/> <operation ref="tns:setWeather" whttp:method="PUT" whttp:location="WeatherServiceHTTPEndpoint/Update/{country}/{city}"/> <!--Ideally this should be as follows. Will fux it in the trunk--> <!--<operation ref="tns:setWeather" whttp:method="POST" whttp:location="WeatherServiceHTTPEndpoint/Weather/{country}/{city}"/>--> </binding> <service name="WeatherService" interface="tns:Weather"> <endpoint name="WeatherServiceHTTPEndpoint" binding="tns:WeatherHTTPBinding" address=" http://example.org/WeatherService/WeatherServiceHTTPEndpoint/"/> </service> </description> Thanks, Keith. On 7/11/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Hi Keith, An example would be very nice. ;-) An example where you format the URL in a RESTish style would be perfect. Maybe with both GET & POST if it isn't too much trouble. Thanks a lot. Regards Multi-Support A/S Torben Riis -------------------------------------------------------------------- Phone +45 96 600 600, Fax +45 96 600 601 E-mail: [EMAIL PROTECTED] http://www.multi-support.com "keith chapman" <[EMAIL PROTECTED] ail.com> To [email protected] 11-07-2007 07:40 cc Subject Please respond to Re: Axis2: RESTful implementation [EMAIL PROTECTED] with Axis2 he.org The WSDL 2.0 primer is a good starting place. It takes you through the concepts of WSDL 2.0 very nicely (without making things too complex). WSDL 2.0 is a whole lot clean and easy to understand. If you like I can write a sample WSDL 2.0 doc for you if you have an example in mind :). And yes you can use the http methods GET, POST, PUT & DELETE in the same service. Its just that you cant use them on the same operation. Thanks, Keith. On 7/11/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: Hi Keith, Thank you for answering. When I earlier talked about using the http methods GET, POST, PUT & DELETE, I actually meant using them in the same service. WSDL 2.0 really sounds interesting. I have a little knowledge about WSDL 1.1/1.2, because I'm studying for the SCDJWS exam, but I doesn't know anything about WSDL 2.0. I guess a lot has changed since it is possible to describe how the URL should be formatted and whether to use http methods GET, POST, PUT or DELETE. Do you have or know a place where I can find simple example WSDL describing such a service? Or would it be best just start reading WSDL 2.0 HTTPBinding. Regards Multi-Support A/S Torben Riis -------------------------------------------------------------------- Phone +45 96 600 600, Fax +45 96 600 601 E-mail: [EMAIL PROTECTED] http://www.multi-support.com "keith chapman" < [EMAIL PROTECTED] ail.com> To [email protected] 11-07-2007 06:45 cc Subject Please respond to Re: Axis2: RESTful implementation [EMAIL PROTECTED] with Axis2 he.org See comments inline. On 7/10/07, [EMAIL PROTECTED] <[EMAIL PROTECTED] > wrote: Hi, I have some questions regarding implementing a RESTfull service. After reading a lot of previous RESTish threads I got quite confused. So I hope someone can help me straightened it out. If I want to create a RESTful service with Axis2 would it then require that the service is implemented as RPC, or can other message receivers be used? Is it possible to create a RESTful service with Axis2 that can be reached in the following way: http://www.boeing.com/rest/aircraft/747 instead of http://www.boeing.com/rest/MyAircraftServices/getAircraft?model=747 Yes this can be done. REST support in Axis2 was achieved via the WSDL 2.0 HTTPBinding (If you are not familiar with WSDL this might sound a bit strange). The kind of question you asked can easily be done by deploying your service via a WSDL 2.0 description. Please have a look at the primer it has some easy to understand examples. First i actually thought that a RESTful service should implement some sort of interface with methods corresponding to GET, POST, PUT & DELETE. But I read in some of the other threads that a RESTful service should only have one method. Isn't that a problem if you try to accomplice the syntax that the following articles describes. Yes you can use all 4 HTTP methods described above, depending on your requirement. Its all about using the appropriate method (Not that you must use just one method) http://www.innoq.com/blog/st/2006/06/30/rest_vs_soap_oh_no_not_again.html http://www.xfront.com/REST-Web-Services.html Where the same url has different functionality depending on how it is called (GET, POST). GET /order/{id} Get order details POST /order/{id} Add item the current version of Axis2 does not support this (But it can be included, I will file a JIRA on this and try to get it into the 1.3 release.) Please let us know if you need more help (Can even assist you in writing down the WSDL 2.0 description) Thanks, Keith. Regards Multi-Support A/S Torben Riis -------------------------------------------------------------------- Phone +45 96 600 600, Fax +45 96 600 601 E-mail: [EMAIL PROTECTED] http://www.multi-support.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Keith Chapman WSO2 Inc. Oxygen for Web Services Developers. http://wso2.org/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Keith Chapman WSO2 Inc. Oxygen for Web Services Developers. http://wso2.org/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Keith Chapman WSO2 Inc. Oxygen for Web Services Developers. http://wso2.org/
