【发布时间】:2021-02-27 12:55:23
【问题描述】:
我有一个要求,模型架构将由用户从将由 REST API 公开的用户界面生成,这意味着动态模型、控制器和存储库。这已经实现了。
现在的要求是允许用户从同一用户界面指定表之间的关系。例如我正在创建一个表 order 然后在定义它的属性时我应该能够将 product_id 属性映射到 product 表。
我怎样才能做到这一点?
【问题讨论】:
标签: loopbackjs loopback4
我有一个要求,模型架构将由用户从将由 REST API 公开的用户界面生成,这意味着动态模型、控制器和存储库。这已经实现了。
现在的要求是允许用户从同一用户界面指定表之间的关系。例如我正在创建一个表 order 然后在定义它的属性时我应该能够将 product_id 属性映射到 product 表。
我怎样才能做到这一点?
【问题讨论】:
标签: loopbackjs loopback4
恐怕 LoopBack 4 还没有为动态构建模型关系提供一流的支持。我们已经在 GitHub issue loopback-next#2483
中讨论了这个功能基本上,问题有两个部分:
创建用于导航到相关模型的存储库工件。
这是 IMO 中比较简单的部分,因为您需要做的就是使用 defineCrudRepositoryClass 为您尝试通过 REST API 公开的模型创建的类构造函数,并创建一个将调用类似 createHasManyRepositoryFactoryFor 的方法的子类和registerInclusionResolver 来自构造函数。
定义一个控制器类来实现特定于关系的 REST API 端点。
这稍微复杂一些,因为您需要实现一个函数,该函数将为您希望通过 REST API 公开的每个模型关系定义一个具有动态生成的 OpenAPI 元数据的新控制器类。我将从复制和粘贴 defineCrudRestController 函数开始,然后重新处理各个端点以提供您的关系的导航 API。您可能应该创建多个define{relation}Controller 函数,每个关系类型一个(例如defineHasManyController)。
【讨论】: