【发布时间】:2017-06-06 14:21:38
【问题描述】:
我正在尝试确定从 1 个 REST 端点返回不同对象的最佳方法。
示例:
假设客户有一个客户 ID:123 并调用GET /api/customers/123
- 消费客户端除了 ID 外,对客户没有任何其他了解
- 返回的客户可以是个人或企业,每个客户都有自己独特的属性。这些对象中的每一个都可以更新
我当前的设计有多个 PUT 端点来支持独特的更新
PUT /api/businesses/123PUT /api/customers/123
我看到的问题是客户端现在必须调用另一个端点来对商业客户执行更新,这使得 API 使用起来更加复杂,我不确定从 1 个 GET 端点返回不同对象类型的最佳实践.
是否有任何替代方案或这种方法是否合理?
编辑:所以我认为我的问题更多是因为我认为这些实体是真正独特的,而事实上它们是相同的(除了一些元数据属性)。 @Patrick Hofman 和 @LB2 为您解答。我会重构
【问题讨论】:
-
我没有看到 REST API 层因为您添加了端点而变得更加复杂!显然,您只需要准备一些文档...
-
两个端点如何相互关联?
-
@PatrickHofman 检索个人或企业信息的唯一方法是通过单个 GET。 PUT 请求之间没有关系,因为它们正在更新单独的实体。
-
那么在 GET 中与它们有什么关系?
-
@PatrickHofman 他们都是相同的基本类型,客户。他们确实共享一些属性,但大多数都是独一无二的。例如,如果我要更改个人姓名,它将是名字和姓氏,但企业是他们的经营名称
标签: c# rest asp.net-web-api