提问者:小点点

在Loopback4中创建requestBody的最佳实践是什么?


目前我正在处理Loopback4,我遇到了这个问题。

    @requestBody({
      content: {
        'application/json': {
          schema: getModelSchemaRef(LoginCredentials, {
            title: 'Login'
          })
        },
      }
    }) credentials: LoginCredentials

在这个代码块中,我为请求主体创建了一个模型。这是定义请求体的最佳方法吗?


共1个答案

匿名用户

这是定义请求体的最佳方法吗?

是的。Models'的主要目的是作为定义任何数据形状的主界面。这支持跨不同层(如REST和存储库)的重用,并鼓励创建单一的真相来源。这意味着更好的长期代码可维护性,如数据设计漂移和重复代码等问题。

是否有其他方法来定义请求主体?

是的。请求主体修饰(code@requestbody()/code>)接受OpenAPI 3.0规范对象。因此,可以编写OpenAPI规范,而不是依赖从模型生成它。然而,为了减轻上述问题,这一做法应有所节制。

如果我的模特太多怎么办?

引导的工件可以存储在嵌套的目录中;因此,模型可以按其业务域进行隔离。例如,与身份验证相关的模型可以存储在下。

模型之外的代码隔离

另一种解决方案是使用组件分离代码。如果操作得当,组件通过将引导逻辑和工件隐藏在主代码库中,允许近乎完全的代码隔离。例如,所有身份验证代码和工件--尽管有控制器,数据源和模型--都可以保存在下。从应用程序其余部分的角度来看,所需的唯一操作是使用和一些绑定配置绑定组件。这意味着职责的明确分离,从而提高了代码的可读性,因为开发人员将不必查看分离代码的实现细节,除非必要。