寻找不同REST资源表示的命名约定的建议

寻找不同REST资源表示的命名约定的建议,rest,spring-mvc,jersey,resteasy,Rest,Spring Mvc,Jersey,Resteasy,当使用任何REST框架(jersey、resteasy、spring mvc)时,大多数情况下(持久性)模型类与公开的REST资源表示不同。 即使在大多数情况下,传入的json表示(例如创建和更新)也与传出的json表示(例如列表、获取等)不同 我正在寻找一些好的命名约定来解决这个问题 示例结构: +-- my.comp.domain.Customer +-- my.comp.rest.resource.CustomerResource (or CustomerController) Cust

当使用任何REST框架(jersey、resteasy、spring mvc)时,大多数情况下(持久性)模型类与公开的REST资源表示不同。 即使在大多数情况下,传入的json表示(例如创建和更新)也与传出的json表示(例如列表、获取等)不同

我正在寻找一些好的命名约定来解决这个问题

示例结构:

+-- my.comp.domain.Customer
+-- my.comp.rest.resource.CustomerResource (or CustomerController)
CustomerResource将在内部使用Customer来持久化和检索数据。 但是对于外部(请求+响应对象),它将使用稍微不同的结构

我现在做的是:

+-- my.comp.rest.representation.CustomerRequest 
+-- my.comp.rest.representation.SimpleCustomerResponse
+-- my.comp.rest.representation.SimpleCustomerCollectionResponse
+-- my.comp.rest.representation.ExtendedCustomerResponse
这些基本上是只包含字段的简单POJO。所使用的REST框架将只使用它们将其转换为json


还有其他人使用不同的名称吗?我愿意听取建议。

不要将请求、响应作为单独的请求,而是尝试使用通用的基本表示法来表示大多数请求,并根据需要添加其他请求

POST/customers/-class可以是“CustomerRepresentation/CustomerContract/CustomerRp/representation.CustomerModel”

GET/customers/{id}-返回相同的CustomerRepresentation或以上内容

也一样

获取/customers/-CustomerListRepresentation或相同

链接可以作为创建的可选对象附加到相应的对象


请让我知道您的想法。

当您返回列表时,如果您没有传递客户id占位符,则您的url应该描述列表,即GET/customers,否则GET/customer/{id}会在所有情况下多次更新url。不需要根据单数/复数对它们进行区分,只需将它们全部定义为复数即可使api变得简单。这取决于每个人做出自己的选择,而不是混淆太多的惯例。