【发布时间】:2016-07-12 09:08:51
【问题描述】:
在开发 RESTFul Web 服务时,我对请求实体的建模感到困惑。处理请求所需的所有数据是否应该是实体的一部分,或者我应该将一些数据移动到 URL 路径中(假设我在这些数据中有逻辑层次结构)。
例如:
路径
/api/payment/3pResponse
实体架构
{
"marketplacedId" : String,
"customerId: String,
"contractId: String,
"planId": String,
"3pResonse" : {},
"3pResponseURI" : "string"
}
对
路径
/api/payment/marketplaces/{mktId}/customers/{customerId}/contracts/{contractId}/plans/{plandId}/3pResponse
实体架构
{
"3pResonse" : {},
"3pResponseURI" : "string"
}
请注意,路径上的资源(例如 /api/payment/marketplaces/{mktId})可能并不真正存在于我的应用程序中。
两者中的任何一个在技术上都可行,但我想了解在这种情况下围绕实体建模的最佳实践。
【问题讨论】:
-
用例是什么?你的情况是什么资源。它是 POST、PUT、GET ......您在谈论的操作吗?你期望幂等性,......?
-
操作是PUT。幂等性是预期的。
-
这还取决于您希望如何访问您的资源。您是否想直接访问例如客户,这就是我要求您提供 UseCase 的原因。
标签: rest entity-model