5.10. Sample REST Service with complex media types output preview

1. Create, save and deploy the REST Service with the next content:

// simple groovy script
import javax.ws.rs.Path
import javax.ws.rs.POST
import javax.ws.rs.Produces
import javax.ws.rs.Consumes
import javax.ws.rs.PathParam
import javax.ws.rs.HeaderParam
import javax.ws.rs.QueryParam

@Path("/testMediaTypes")
public class TestService {
  @POST
  @Consumes("application/xml")

  @Produces("text/html")
  @Path("InnerPath/{pathParam}")
  public String post1(@PathParam("pathParam") String pathParam,
    @HeaderParam("Test-Header1") String testHeader,
    @QueryParam("Test Query Parameter 1") String testQueryParam,
    String body) {
      return "PathParam 1:" + pathParam + "; Test Query Parameter 1: " + testQueryParam 
      + "; Test-Header1: " + testHeader + "; Body: " + body;
  }

  @POST
  @Consumes("application/xml")

  @Produces("application/json")
  @Path("InnerPath/{pathParam}")
  public String post2(@PathParam("pathParam") String pathParam,
    @HeaderParam("Test-Header2") String testHeader,
    @QueryParam("Test Query Parameter 2") String testQueryParam,
    String body) {
      return "PathParam 2:" + pathParam + "; Test Query Parameter 2: " + testQueryParam 
      + "; Test-Header2: " + testHeader + "; Body: " + body;
  }

}

2. Select Run --> Launch REST Service... from the top menu, or click on the toolbar.

3. Select the Path field as "/testMediaTypes", method OPTIONS, then click Send.

The OPTIONS request is sent. You will see the response in the Output tab. For example:



<application xmlns="http://research.sun.com/wadl/2006/10">
   <resources base="http://192.168.0.8:8080/rest">
      <resource path="/testMediaTypes">
         <method name="OPTIONS">
            <response>
               <representation mediaType="application/vnd.sun.wadl+xml"/>
            </response>
         </method>
         <resource path="InnerPath/{pathParam}">
            <param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="pathParam" style="template" type="xs:string"/>
            <method id="post1" name="POST">
               <request>
                  <param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Test-Header1" style="header" type="xs:string"/>
                  <param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Test Query Parameter 1" style="query" type="xs:string"/>
                  <representation mediaType="application/xml"/>
               </request>
               <response>
                  <representation mediaType="text/html"/>
               </response>
            </method>
            <method id="post2" name="POST">
               <request>
                  <param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Test-Header2" style="header" type="xs:string"/>
                  <param xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Test Query Parameter 2" style="query" type="xs:string"/>
                  <representation mediaType="application/xml"/>
               </request>
               <response>
                  <representation mediaType="application/json"/>
               </response>
            </method>
         </resource>
      </resource>
   </resources>
</application>

4. Open the Launch REST Service... form again and select the another Path field:

"/testMediaTypes/InnerPath/{pathParam}"

5. Select the Response Media Type = "text/html" item.

6. Enter "/testMediaTypes/InnerPath/value1" in the Path field. In the Query Parameter tab, set "Test Query Parameter 1"="value2". In the Header Parameter tab, set "Test-Header1"="value3". In the Body tab, type "example".

7. Click Send.

The request is created and then sent. You will see the response in the Output tab:

[OUTPUT] - -Status - - - - - - - -
200 OK
- -Headers- - - - - - - -
Server : Apache-Coyote/1.1
Content-Type : text/html
Transfer-Encoding : chunked
Date : Mon, 05 Jul 2010 09:06:55 GMT
- -Text - - - - - - - - -
PathParam 1:value1; Test Query Parameter 1: value2; Test-Header1: value3; Body: example
Copyright ©2012. All rights reserved. eXo Platform SAS