Thanks Jonathan..

 

1.       Here's what I did to support lets say ".js" as an extension to
indicate JSON as the content type

 

public class FirstStepsApplication extends Application {

   /**

    * Creates a root Restlet that will receive all incoming calls.

    */

   @Override

   public Restlet createRoot() {

         // Create a router Restlet that routes each call to a

         // new instance of HelloWorldResource.

         Router router = new Router(getContext());

         // Defines only one route

         router.attachDefault(HelloWorldResource.class);

         this.getTunnelService().setExtensionsTunnel(true);

         this.getTunnelService().setEncodingParameter("output");

         this.getMetadataService().addExtension("js", new
Metadata(MediaType.APPLICATION_JSON.getName(),
MediaType.APPLICATION_JSON.getDescription()), true );

         return router;

   }

}

 

public class HelloWorldResource extends Resource {

      public HelloWorldResource(Context context, Request request, Response
response) {

            super(context, request, response);

            // This representation has only one type of representation.

            getVariants().add(new Variant(MediaType.TEXT_PLAIN));

            getVariants().add(new Variant(MediaType.APPLICATION_JSON));

            

      }

 

      /**

       * Returns a full representation for a given variant.

       */

      @Override

      public Representation represent(Variant variant) throws
ResourceException {

            Representation representation = null;

            if(variant.getMediaType() == MediaType.APPLICATION_JSON){

                  representation = new JsonRepresentation("Hello World");

            }else if ( variant.getMediaType() == MediaType.TEXT_PLAIN){

                  representation = new StringRepresentation(

                              "hello, world", MediaType.TEXT_PLAIN);

            }

            return representation;

      }

}

 

However when I call the service using the following URL
http://localhost:8080/firstStepsServlet/Hello.js the Variant type in the
HelloWorldResource is of MediaType.TEXT_PLAIN

 

Thanks for Your help

 

From: Jonathan Hall (via Nabble)
[mailto:ml-user+125526-1692215...@n2.nabble.com] 
Sent: Friday, June 05, 2009 1:29 PM
To: Sherif
Subject: Re: Multiple content types

 

Have a look at 
http://www.restlet.org/documentation/2.0/api/org/restlet/service/TunnelServi
ce.html

getTunnelService().setExtensionsTunnel(true); 

Jon 

Sherif wrote: 
> I realize RESTLet supports multiple encodings based on the Accept Encoding

> headers. Does Restlet also have a way to allow encodings based on URI
patter 
> e.g. http://mystores/items/1000.json or something like that ? 
> 

------------------------------------------------------ 
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447
<http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2359
775> &dsMessageId=2359775



  _____  

This email is a reply to your post @
http://n2.nabble.com/Multiple-content-types-tp3031817p3031841.html
You can reply by email or by visting the link above.

 


-- 
View this message in context: 
http://n2.nabble.com/Multiple-content-types-tp3031817p3043073.html
Sent from the Restlet Discuss mailing list archive at Nabble.com.

------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2360290

Reply via email to