我使用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对象,这个容器看起来像数据库表,它将是一个从客户端操纵数据的类
由于