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

在Nest.js项目中添加Swagger基本路径字段,swagger,nestjs,nestjs-swagger,Swagger,Nestjs,Nestjs Swagger,我试图使用nestjs/swagger从后端创建一个swagger文件,但我遇到了一个与基本路径相关的问题。我想要实现的是将版本显示为基本路径,而不是在所有可用的方法中显示它,这既丑陋又混乱 目前,我的API具有以下结构(这是app.module.ts中的一组内容): const routes:routes=[ { 路径:'/api', 模块:API模块, 儿童:[ { 路径:'/v1', 模块:v1模块, 儿童:[ { 路径:'/orders', 模块:OrdersModule }, { 路径

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

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

const routes:routes=[
{
路径:'/api',
模块:API模块,
儿童:[
{
路径:'/v1',
模块:v1模块,
儿童:[
{
路径:'/orders',
模块:OrdersModule
},
{
路径:'/users',
模块:UsersModule
}
]
}
]
}
];
这样,一旦我生成并检查了swagger,我就会看到所有方法都遵循
/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}
...
用户

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有
host
basePath
的字段,但没有找到任何方法将其填充到Nest.js中。通过研究,我发现有
.setBasePath()
.addServer()
方法,但它们对我不起作用(我很确定它们已被弃用)


非常感谢您的帮助。

如果您希望nestjs向每个端点添加api/v1,请使用
setGlobalPrefix('api/v1')
来完成


但它们是您的端点,不是吗?是的,但我不希望这样。我希望Nest.js通过/api/v1/提供服务,那么我建议不要使用
nestjs路由器
,那我怎么路由呢?你不需要nestjs路由器来路由。我删除了以前的答案以进行更新。这确实是一条路要走,但我觉得它解释得很糟糕,令人困惑。如果您想使用
api/v1
作为全局前缀,您必须使用
setGlobalPrefix('api/v1')
启动应用程序,删除路由
api
v1
,将子路由设置为主路由,并添加配置值
ingnoreGlobalPrefix
addServer('api/v1')
。我建议你更新你的答案来解释它。