看起来您正在使用@nestjs/swagger 版本 4***。setHost 在版本 4*** 中被删除,但在版本 3*** 中可用。如果它在我猜@nestjs/swagger 的版本在您的项目中更新之前有效。
正如你在这里看到的
如果您当前使用的是@nestjs/swagger@3.*,请注意版本 4.0 中的以下中断/API 更改。
以下装饰器已更改/重命名:
- @ApiModelProperty 现在是 @ApiProperty
- @ApiModelPropertyOptional 现在是 @ApiPropertyOptional
- @ApiResponseModelProperty 现在是 @ApiResponseProperty
- @ApiImplicitQuery 现在是 @ApiQuery
- @ApiImplicitParam 现在是 @ApiParam
- @ApiImplicitBody 现在是 @ApiBody
- @ApiImplicitHeader 现在是 @ApiHeader
- @ApiOperation({ title: 'test' }) 现在是 @ApiOperation({ summary: 'test' })
- @ApiUseTags 现在是 @ApiTags
DocumentBuilder 重大更改(更新的方法签名):
- 添加标签
- addBearerAuth
- 添加OAuth2
- setContactEmail 现在是 setContact
- setHost 已被移除
- setSchemes 已被删除(使用 addServer 代替,例如 addServer('http://'))
添加了以下方法:
- 添加服务器
- 添加ApiKey
- addBasicAuth
- 添加安全性
- 添加安全要求
因此,如果您需要将 API URL 添加到 Swagger UI 页面,您可以通过添加 .addServer(API_URL)
. API_URL 可以是类似/api
或https://example.com/api
. 并且可以多次添加。如果您需要例如本地使用、开发和生产环境的 URL。
完整的例子看起来像
const document = SwaggerModule.createDocument(
app,
new DocumentBuilder()
.setTitle('API')
.setDescription('API')
.setVersion('1.0')
.addBearerAuth()
.addServer(API_URL)
.build(),
);
SwaggerModule.setup(swaggerPath, app, document);