在Nest.js项目中添加Swagger基本路径字段
我试图使用nestjs/swagger从后端创建一个swagger文件,但我遇到了一个与基本路径相关的问题。我想要实现的是将版本显示为基本路径,而不是在所有可用的方法中显示它,这既丑陋又混乱 目前,我的API具有以下结构(这是在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 }, { 路径
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')
。我建议你更新你的答案来解释它。