在Nest.js项目中添加Swagger基本路径字段

时间:2020-02-19 07:33:08

标签: swagger nestjs nestjs-swagger

我正在尝试使用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()方法,但是它们对我不起作用(我很确定它们已被弃用)。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

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