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/

Reply via email to