NodeJS 如何隐藏Open-API规范的一个路由使用ESP 4

thigvfpy  于 2023-10-17  发布在  Node.js
关注(0)|答案(2)|浏览(164)

在Loopback 4中是否有一种方法可以使用@get()装饰器(或任何其他装饰器),传递路径但不为该路由生成开放的API规范?
通过传递一个特殊的参数/使用@operation或任何东西?
谢谢

dgenwo3n

dgenwo3n1#

对于操作装饰器@get@post等,有一个未记录的规范选项'x-visibility': 'undocumented'。可能符合你的需求下面是一个简单的例子:

@get('/test', {
  responses: {},
  'x-visibility': 'undocumented',
})
async test() {
  // business logic
}

以下是一些使用它的参考文献:

  • rest.server.open-api-spec.unit.ts#L149
  • uml.controller.ts#L23
iibxawm4

iibxawm42#

我知道这是一个旧的线程,但我在搜索中发现它,并发现有一个不同的(更好?)的方式来处理这种情况。@ blog/rest导入赠款对2个对象的访问权限,这些对象可以实现OP所需的功能。OAS 和 * 能见度 *

import { get, oas, visibility } from '@loopback/rest';

//method using oas
@get('/test')
@oas.visibility(OperationVisibility.UNDOCUMENTED)
@response(200, {
    description: 'Whatever the test is',
    content: {'application/json': {schema: TestSchema}},
  })
async test() {
  //code
}

//method using visibility
@get('/test2')
@visibility(OperationVisibility.UNDOCUMENTED)
@response(200, {
    description: 'Whatever the test2 is',
    content: {'application/json': {schema: TestSchema2}},
  })
async test2() {
  //code
}

如果您愿意,实际上可以将oas名称空间用于整个API规范,因为它包含了所有需要的OpenApi装饰器
文件:https://loopback.io/doc/en/lb4/Decorators_openapi.html#shortcuts-for-the-openapi-spec-oas-objects
来源:https://github.com/loopbackio/loopback-next/blob/44f2fcd827c4601ec44828c5b5f76f2f6730424e/packages/openapi-v3/src/decorators/index.ts#L24

相关问题