That is probably also a good idea, but that is another story. This is
intended as a thin wrapper on top of plain request/response (not event
driven) services.

/Patrik


PaloT wrote:
> 
> Hello,
> couldn't we do this with new EDA features and some message bus. I
> guess Camel can handle this. It will be nice to have standardized
> services in form of message services. Frontend will be done in service
> facades. Standard service call will generate message on bus and other
> types of integration like REST services will be done on message bus.
> 
> Pavel
> 
> On Fri, Aug 20, 2010 at 9:19 AM, Patrik Nordwall
> <patrik.nordw...@gmail.com> wrote:
>>
>> Hi Attila, I'm happy to see you are back in the team again.
>>
>> We also need to decide if we need separate DslController or if we can use
>> DslService, with some additions.
>>
>> Service PlanetService {
>>    restful
>>
>>   �...@planet findById(Long id) restPath="/planet/{id}" restMethod=GET
>>        delegates to PlanetRepository.findById;
>>
>>    save(@Planet planet) restPath="/planet" restMethod="POST"
>>        delegates to PlanetRepository.save;
>> }
>>
>>
>> We can probably come up with good defaults for restPath and restMethod
>> based
>> on naming conventions, so that it is optional to define them.
>>
>>
>> Another design decision is if we should have a separate Controller in the
>> meta model, that is used by the code generation templates. You know we
>> have
>> a transformation between dsl model and code generation model, so they
>> don't
>> have to have the same structure.
>> Maybe a Controller extends Service is nice in the meta model, because
>> then
>> it is easy to use polymorphism in the xpand templates.
>>
>> /Patrik
>>
>>
>>
>> Bak Attila wrote:
>>>
>>> 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-tp25407858s17564p29489342.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
>>
> 
> ------------------------------------------------------------------------------
> 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
> 
> 

-- 
View this message in context: 
http://old.nabble.com/-sculptor--RESTful-Services-tp25407858s17564p29489769.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