如何使用环回 4 隐藏一条路由的 open-api 规范

问题描述 投票:0回答:2

Loopback 4 中是否有一种方法可以使用

@get()
装饰器(或任何其他装饰器),传递路径但不生成该路由的开放 api 规范?
通过传递特殊参数/使用
@operation
或其他什么?
谢谢你。

node.js typescript loopback openapi loopback4
2个回答
5
投票

对于操作装饰器

'x-visibility': 'undocumented'
@get
等,有一个未记录的规范选项
@post
,可能适合您的需求。这是一个简化的示例:

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

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


0
投票

我知道这是一个较旧的线程,但我在搜索中遇到它并发现有一种不同的(更好的?)方法来处理这种情况。 @loopback/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

© www.soinside.com 2019 - 2024. All rights reserved.