gpt4 book ai didi

c# - MVC 4 Web API + EntityFramework : Handling external resource dependencies

转载 作者:太空宇宙 更新时间:2023-11-03 16:10:17 24 4
gpt4 key购买 nike

所以我遇到这种情况,假设我正在制作两个 API; Car 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= ,因为它知道资源的主机。这是最佳做法吗?你们有更好的想法吗?

最佳答案

如果您需要在不了解依赖关系的情况下调用依赖关系,我会将用于调用实体的子 URL 保存在单个字段中(例如/auto/car/12?fields=...)。

但我想知道这有多容易,因为 API 的使用者需要了解如何使用从 API 返回的数据。在您的示例中,这意味着 AutoService API 必须了解如何处理 Auto API 数据。

因此,我的最终建议取决于您的设计目的。如果这是为了显示,我会让汽车服务知道 id 并知道如何包含汽车特定控件。如果这是为了处理,我几乎会有一个 CarId 并且让 AutoService API 准确理解如何获取数据以及如何在代码中使用它;不在数据库中。

关于c# - MVC 4 Web API + EntityFramework : Handling external resource dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17708360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com