【问题标题】:How to define relations in dynamically created model in loopback 4如何在环回 4 中动态创建模型中定义关系
【发布时间】:2021-02-27 12:55:23
【问题描述】:

我有一个要求,模型架构将由用户从将由 REST API 公开的用户界面生成,这意味着动态模型、控制器和存储库。这已经实现了。

现在的要求是允许用户从同一用户界面指定表之间的关系。例如我正在创建一个表 order 然后在定义它的属性时我应该能够将 product_id 属性映射到 product 表。

我怎样才能做到这一点?

【问题讨论】:

    标签: loopbackjs loopback4


    【解决方案1】:

    恐怕 LoopBack 4 还没有为动态构建模型关系提供一流的支持。我们已经在 GitHub issue loopback-next#2483

    中讨论了这个功能

    基本上,问题有两个部分:

    1. 创建用于导航到相关模型的存储库工件。

      这是 IMO 中比较简单的部分,因为您需要做的就是使用 defineCrudRepositoryClass 为您尝试通过 REST API 公开的模型创建的类构造函数,并创建一个将调用类似 createHasManyRepositoryFactoryFor 的方法的子类和registerInclusionResolver 来自构造函数。

    2. 定义一个控制器类来实现特定于关系的 REST API 端点。

      这稍微复杂一些,因为您需要实现一个函数,该函数将为您希望通过 REST API 公开的每个模型关系定义一个具有动态生成的 OpenAPI 元数据的新控制器类。我将从复制和粘贴 defineCrudRestController 函数开始,然后重新处理各个端点以提供您的关系的导航 API。您可能应该创建多个define{relation}Controller 函数,每个关系类型一个(例如defineHasManyController)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 2021-01-17
      • 2010-09-29
      相关资源
      最近更新 更多