Java 使用SpringMVC恢复服务器并在客户端处理响应

Java 使用SpringMVC恢复服务器并在客户端处理响应,java,json,spring-mvc,restful-architecture,Java,Json,Spring Mvc,Restful Architecture,我已经使用SpringMVC创建了一个RestFUL服务,但是这个服务器并不像其他RestFUL服务器那样构建 服务器只有一个控制器(它是一种面向)和3个映射,请参见下文 映射1 @RequestMapping(value = "domain/{entity}/{action}", method = { RequestMethod.POST }, consumes = "application/json", produces="application/json") 如您所

我已经使用SpringMVC创建了一个RestFUL服务,但是这个服务器并不像其他RestFUL服务器那样构建

服务器只有一个控制器(它是一种面向)和3个映射,请参见下文

映射1

   @RequestMapping(value = "domain/{entity}/{action}", method = {
        RequestMethod.POST }, consumes = "application/json", produces="application/json")
如您所见,此映射处理有关域的所有请求,并作为请求体接收一个名为request ex的对象: /域/客户/保存

/域/客户/删除

/域/客户/查找

/域/客户/任何其他客户

/域/雇主/保存

/域/雇主/雇员特定服务 等等

映射2

    @RequestMapping(value = "service/{service}/{action}", method = {
        RequestMethod.POST }, consumes = "application/json", produces="application/json")
此映射处理所有服务类,如

/服务/电子邮件/发送

/服务/报告/获取报告

/服务/schema/getschema

映射3

此映射是关于登录的,在登录客户端接收到令牌后,发送将来使用其他资源的请求


一切正常,控制器使用反射处理de请求,Spring管理请求的对象(bean)

优势?

通过使用配置转换,可以对仅来自一个控制器的流程请求有一个标准行为

业务逻辑仅保留在服务层中,而不保留在控制器或域类中

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

问题1

   @RequestMapping(value = "domain/{entity}/{action}", method = {
        RequestMethod.POST }, consumes = "application/json", produces="application/json")
所以,即使它有效,我想知道你们的看法,这个“设计”有什么问题

问题2

    @RequestMapping(value = "service/{service}/{action}", method = {
        RequestMethod.POST }, consumes = "application/json", produces="application/json")
独立于这种方法,客户机会收到一个响应,在本例中是JSON格式的,因此,我不希望客户机知道服务器的任何类,我如何在不知道的情况下处理服务器对象

例如,如果我收到关于客户的JSON

 {
  "id" : "1",
  "name" : "RODRIGO" 
 }
我可以在客户端将其转换为对象,但之后呢

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


谢谢

Q1我不认为这是一个好的设计,例如,您不能使用简单的验证,就像您对实体使用单独的控件一样。我不理解第2季度或第1季度的动机在收到控制器的数据后,有关实体的服务执行验证并返回到控制器,控制器返回到客户端,因此验证在服务层进行。问题2是关于如何处理来自服务器的响应数据。您可以展示任何验证示例吗?例如,重复的字段值、范围字段值、最大长度、最小长度、错误的电子邮件地址?使用url/service/schema/getschema,我可以将shchema提供给客户端进行验证,但这些验证也将在服务器端执行