带有Spring MVC的RESTFul服务器在客户端处理响应

时间:2014-01-28 14:00:24

标签: java json spring-mvc restful-architecture

我使用Spring MVC创建了一个RestFUL服务,但是这个服务器并不像其他RESTFull服务器那样构建。

服务器只有1个控制器(它是一种Faced),有3个映射,见下文

映射1

   @RequestMapping(value = "domain/{entity}/{action}", method = {
        RequestMethod.POST }, consumes = "application/json", produces="application/json")

正如您所看到的,此映射过程ALL请求有关DOMAIN的请求,并作为Request body接收一个名为Request ex的对象: /域/客户/保存

/域/客户/删除

/域/客户/查找

/域/客户/ anyotherserviceaboutcustomer

/域/雇主/保存

/域/雇主/ employerEspecificService 等

映射2

    @RequestMapping(value = "service/{service}/{action}", method = {
        RequestMethod.POST }, consumes = "application/json", produces="application/json")

此映射过程ALL服务类,如

/服务/电子邮件/发送

/服务/报告/ getreport

/服务/架构/的getSchema

映射3

此maping是关于登录,登录后客户端收到令牌以发送将来请求消耗其他资源


一切正常,控制器进程请求使用Reflection和Spring管理请求的对象(Beans)。

优势?

使用Conversion over Configuration可以从一个控制器获得有关处理请求的标准行为。

业务逻辑仅保留在服务层中,永远不在Controller或域类中

我只需要在一个地方处理请求。

...

问题1

所以,即使它有效,我也想知道你们的意见,这个“设计”的问题是什么?

问题2

独立于这种方法,客户端收到一个响应,在这种情况下是JSON格式,所以,我不希望客户端知道服务器的任何类,我怎么能处理服务器对象而不知道它们?

例如,如果我收到有关CUSTOMER的JSON

 {
  "id" : "1",
  "name" : "RODRIGO" 
 }

我可以在客户端将其转换为Object,但之后呢?

我正在考虑创建一种“容器对象”,它将收到的JSOn转换为Container对象,这个容器看起来像数据库表,它将是一个从客户端操纵数据的类

由于

0 个答案:

没有答案