Hi Patrik,

How would you image this one in the dsl as annotated?
I mean how should it look in the textual language?
The problem ist that operations and params need "annotations" there.
Could you give me an example?

@RequestMapping(value = "/inquiry/{id}", method = RequestMethod.GET)
    public String show(@PathVariable("id") Long id, ModelMap modelMap)
throws InquiryNotFoundException

Thanks 
attila


Patrik Nordwall wrote:
> 
> Hi all, I have an idea of a new feature and would like to have your input.
> 
> When we have evaluated Google App Engine we have used the new REST
> features in Spring 3.0. REST is a perfect style for the cloud and I think
> it would be rather easy to generate the Spring Controllers, delegating to
> Services. I'm not looking for another gui solution. It should primarily
> support json and xml content, which can be used by various client
> applications (not only cloud environment).
> 
> My suggestion is to generate Spring Controllers with @RequestMapping
> annotations. The methods should delegate to Service methods, or be
> implemented by hand written code in gap subclass.
> 
> It might look something like this:
> 
>     @RequestMapping(value = "/inquiry/{id}", method = RequestMethod.GET)
>     public String show(@PathVariable("id") Long id, ModelMap modelMap)
> throws InquiryNotFoundException {
>         Key inquiryKey =
> KeyFactory.createKey(Inquiry.class.getSimpleName(), id);
>         Inquiry inquiry = inquiryService.findById(serviceContext(),
> inquiryKey);
>         modelMap.put("inquiry", inquiry);
>         return "inquiry/show";
>     }
> 
>     @RequestMapping(value = "/inquiry", method = RequestMethod.POST)
>     public String create(@ModelAttribute("inquiry") Inquiry inquiry,
> BindingResult result) {
>         if (inquiry == null) {
>             throw new IllegalArgumentException("A inquiry is required");
>         }
>         Inquiry savedInquiry = inquiryService.save(serviceContext(),
> inquiry);
>         return "redirect:/rest/inquiry/" + savedInquiry.getId().getId();
>     }
> 
> 
> What I think should be done:
> - In meta model add Controller and ControllerOperation, similar to
> Service. ControllerOperation should include things necessary to define
> RequestMapping and delegation to ServiceOperation.
> - In DSL add DslController similar to DslService
> - In transformation add transformaton from DslController to Controller
> - In transformation add scaffold for controller, similar to Service, i.e.
> the CRUD operations can be automated using single scaffold keyword
> - Generation template for Controller and its operations. Support for gap
> class.
> -  Generation template for spring configuration for
> ContentNegotiatingViewResolver
> 
> References:
> - http://www.infoq.com/articles/designing-restful-http-apps-roth
> - http://blog.springsource.com/2009/03/08/rest-in-spring-3-mvc
> -
> http://stsmedia.net/spring-finance-part-7-adding-support-for-json-and-xml-views/
>   http://code.google.com/p/spring-finance-manager/source/checkout
>   I have tried the setup described here and I think it is working.
> - http://curl.haxx.se/ (useful for testing)
> 
> What do you thing? Would this be useful for you?
> 
> /Patrik
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/-sculptor--RESTful-Services-tp25407858s17564p29489108.html
Sent from the Fornax-Platform mailing list archive at Nabble.com.


------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
Fornax-developer mailing list
Fornax-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fornax-developer

Reply via email to