【发布时间】:2013-07-17 19:16:44
【问题描述】:
所以我遇到了这种情况,可以说我正在制作两个 API;汽车 API 和 AutoService API。 Car API 管理与汽车实体相关的资源。 AutoService API 管理与为汽车提供维修服务的汽车服务零售实体相关的资源。
假设一个应用程序同时使用这两种 API。它为特定汽车实体创建汽车服务实体。因此,它使用 Car API 创建/编辑汽车资源,然后将其传递给 AutoService API 以为该特定汽车实体创建服务日志。这意味着 AutoService API 中的服务日志实体正在引用作为 API 外部资源的实体。
问题变成了,处理这种依赖关系的最佳实践是什么?我最初的想法是在服务实体中创建两个属性;外部所有者和外部所有者主机。 externalOwner 实体将映射到汽车实体的 id。 externalOwnerHost 将描述外部所有者的来源,比如/auto/car。有了这个关联,为应用程序客户端创建一个约定,以自行确定如何访问给定 externalOwnerHost 的外部所有者实体。所以对于这个例子,应用程序应该足够聪明,知道使用GET /auto/car?fields=,因为它知道资源的主机。这是最佳实践吗?你们有更好的想法吗?
【问题讨论】:
-
当您说 两个 API 时,您是指在同一解决方案中分离 Web API 项目还是只是两个不同的资源端点。我试图做出决定,但没有定论。
-
它们是独立的 Web API 项目。将它们解耦的目的是使它们可以被独立地重复使用和部署。
标签: c# entity-framework asp.net-mvc-4 asp.net-web-api