在使用任何REST框架(jersey,resteasy,spring-mvc)时,(持久性)模型类与公开的REST资源表示形式不同。 即使大多数时候,传入的json表示(例如创建和更新)与传出的json表示(例如list,get,..)不同。
我正在寻找一些好的命名约定来解决这个问题。
示例结构:
+-- my.comp.domain.Customer
+-- my.comp.rest.resource.CustomerResource (or CustomerController)
CustomerResource将在内部使用Customer来持久存储和检索数据。 但是对于外部(Request + Response对象),它将使用一些不同的结构。
我现在所做的是:
+-- my.comp.rest.representation.CustomerRequest
+-- my.comp.rest.representation.SimpleCustomerResponse
+-- my.comp.rest.representation.SimpleCustomerCollectionResponse
+-- my.comp.rest.representation.ExtendedCustomerResponse
这些基本上都是简单的POJO,只包含字段。使用的REST框架将使用它们将其转换为json。
其他人使用不同的名字?我愿意接受建议。
答案 0 :(得分:0)
而不是将Request,Response作为单独的尝试,使用通用的基本表示来表示大多数,并根据需要添加额外的。
POST / customers / - class可以是' CustomerRepresentation / CustomerContract / CustomerRp / representation.CustomerModel'
GET / customers / {id} - 返回相同的CustomerRepresentation或上述
PUT - 同样
GET / customers / - CustomerListRepresentation或相同
链接可以附加到其对应的对象作为create的可选项。
请让我知道你的想法。