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