3

我正在尝试使用 nestjs/swagger 从我的后端创建一个 swagger 文件,但我遇到了与基本路径相关的问题。我想要实现的是将版本显示为基本路径,而不是在所有可用的方法中显示它,这既丑陋又令人困惑。

现在,我的 API 具有以下结构(这是 中存在的一组内容app.module.ts):

const routes: Routes = [
  {
    path: '/api',
    module: ApiModule,
    children: [
      {
        path: '/v1',
        module: V1Module,
        children: [
          {
            path: '/orders',
            module: OrdersModule
          },
          {
            path: '/users',
            module: UsersModule
          }
        ]
      }
    ]
  }
];

这样,一旦我生成并检查了招摇,我就会看到我所有的方法都跟在/api/v1前缀后面。这可能是一个例子:

订单

GET   /api/v1/orders
POST  /api/v1/orders
GET   /api/v1/orders/{order_id}
...

用户

GET   /api/v1/users
POST  /api/v1/users
GET   /api/v1/users/{user_id}
...

我想要的是摆脱/api/v1以任何方式出现。我知道 SWAGGER 有 和 的字段hostbasePath但没有找到任何方法在 Nest.js 中填充它。研究,我发现有一些方法.setBasePath().addServer()但它们对我不起作用(我很确定它们已被弃用)。

非常感谢您的帮助。

4

1 回答 1

2

如果您希望 nestjs 将 api/v1 添加到每个端点,请使用它setGlobalPrefix('api/v1')来执行此操作。

https://docs.nestjs.com/faq/global-prefix#global-prefix

于 2020-02-20T09:32:56.660 回答