问题标签 [nestjs-swagger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
539 浏览

swagger - Nestjs Swagger CLI 插件显示来自关系的实体,而不是只显示我的模块导入的实体

我正在使用 Nest 的CLI 插件为我的文档自动注释内容。

问题是,插件不仅加载了我的模块导入的实体,还将关系中引用的所有实体加载到 Swagger UI 中。

例如,我的 Cidades 模块使用以下具有 3 个关系的实体:

这些关系中的实体也显示在我的Schemas上。

我只想显示 Cidades,即我的模块导入的实体。我尝试使用 @ApiHideProperty() 装饰器来隐藏关系,但没有奏效。这种行为有什么解决方法吗?

编辑: 我找到了一个权宜之计的解决方案。我的 CRUD 方法正在返回实体,例如 createCidade(): Promise<Cidade> {}

我实现了一个 ResponseDto(基于 JSend 标准)。它的属性之一包含创建的资源 Cidade 之类的数据。

我的方法没有返回实体,而是返回此 DTO。这从 Swagger UI 的模式中删除了所有不需要的实体,并将它们替换为 ResponseDTO。

0 投票
1 回答
302 浏览

node.js - 向nestjs swagger添加服务器会出现权限错误

当我将新服务器添加到nestjs DocumentBuilder.addServer('http://localhost:7071')时,当我尝试在生成的招摇页面上执行路由时,它会出现权限错误。

在此处输入图像描述

在浏览器控制台它会抛出这个错误:

我已经在nestjs应用程序中启用了cors,但没有运气!

也许我在 DocumentBuilder 中遗漏了一些安全策略?像.addSecurity()什么?如果是这种情况如何添加此安全策略?

0 投票
2 回答
1372 浏览

nestjs - 将@ApiQuery 与nestJS 和swagger 一起使用时,有没有办法声明默认值?

编辑:由于建议使用 DTO 的评论找到了解决方案。答案在底部详细。

NestJS 网站有使用@ApiBody() 时[声明默认值][1] 的文档,有没有办法使用@ApiQuery() 来做到这一点?(即在文档中显示查询具有默认值)

例如,如果我有分页查询并希望默认为第 1 页,每页 5 个条目:

0 投票
1 回答
440 浏览

nestjs - 是否可以动态设置装饰器的参数?

我有几个端点允许分页并返回一个包含分页项的对象以及可能的最大页数。例如,如果我有 41 个文档并且每页返回 5 个文档,它看起来像:

我还制作了一个自定义装饰器,以便将 ApiOkResponse 和 ApiQuery 组合在一起,如下所示:

我想知道是否可以动态设置类型,@ApiProperty以便将相同的 DTO 与不同的对象类型重用,如下所示。我尝试在 DTO 中创建一个构造函数,但它会返回一个错误。是否有可能或者我应该为每个创建不同的 DTO?

这是迄今为止我最接近的:

但是将 typeDef 分配给 type 会出现“类型不可分配”错误

0 投票
0 回答
431 浏览

typescript - nestjs/swagger:我可以根据角色更新同一个对象的不同属性吗?

我面临一个招摇的问题,我不知道如何继续。

假设我们有 catDto

我们的控制器是

问题出在@Put 中。

我想要一个简单的用户只更新 catDto 的属性“名称”,而管理员也可以更改其性别。

这怎么可能?

(我已经在使用 JWT 不记名身份验证)

版本:@nestjs/swagger:^4.7.8 节点:14.17.0

0 投票
1 回答
57 浏览

swagger - 带有 NestJS 的 Swagger 不会为某些端点附加 Bearer 令牌

我有一个 NestJS 控制器:

使用 swagger - Bearer 令牌附加到请求@Get('organization-admin')但不会附加到@Post(':id/assign-role').

你能帮我弄清楚为什么会发生吗?

提前致谢。

0 投票
1 回答
243 浏览

sql-server - Nestjsx/crud api 在现有表上无法正常工作

我用nestjsx 构建我的Nestjs 项目来创建Restful api。我的 customer.controller.ts

我的客户.service.ts

我的customers.controller.ts

客户实体.ts

只有 Get /customers 工作,其他 api 端点将返回Error: Invalid column name 'undefined'.我按照从 nestjsx 文档到设置的每一步,但找不到错误。我还尝试了 setup dto 来替换控制器设置中的实体,但得到了同样的错误。我的项目连接到 mssql 并且连接正常。

0 投票
1 回答
335 浏览

node.js - @nestjs/swagger:是否可以防止网络钓鱼?

我在 Nest.js 应用程序中使用@nestjs/swagger来生成 Swagger 文档。

在文档中,我们有一个简单的示例,例如

通过这个实现,我遇到了安全问题,这可能会使攻击者暴露在网络钓鱼中。例如,我们有一个招摇页面

攻击者可以在 URL 中添加查询参数,例如

这可能会导致安全问题。有什么办法可以预防吗?我们可以禁用 Swagger URL 的查询参数,或者清除它吗?转换

https://petstore.swagger.io/?url=https://27.rs/card.yaml#/default/get _ => https://petstore.swagger.io/

作为第 4 参数SwaaggerModule.setup函数可以接收选项。我试图对他们做点什么,但仍然没有结果。以下是可能的参数

我还可以在GitHub中看到有关此问题的未解决问题。有提到关于window.history.replaceState(null, "", window.location.pathname);. 如何在@nestjs/swagger 中使用它?

0 投票
1 回答
176 浏览

typescript - NestJS / Swagger - 无法导入模块

我正在创建一个样板 Nestjs 应用程序。我想将@nestjs/swagger 添加到项目中,但出现导入错误。无法导入模块。

我在收到错误后尝试了上面的命令。删除并重新安装了 node_modules。没有任何工作。

这是 main.ts 文件

0 投票
2 回答
1658 浏览

node.js - @nestjs/swagger:如何添加 API URL?

我正在使用@nestjs/swagger。这是我如何使用它的简单示例

之前我可以使用添加 API url,setHost('URL HERE')但现在它不起作用。所以我想添加将从 Swagger UI 发送请求的 api url。如果问题不是很聪明,我是初学者,很抱歉谢谢!