问题标签 [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 投票
0 回答
42 浏览

openapi - 如何使用nestjs/swagger设置additionalProperties:false

Schema 是使用 @ApiBody({type:CreateUserInput}) 实现的,我需要能够通过设置 additionalPropeerties:false 来防止它根据 OPENAAPI 规范接受其他属性,但我不知道如何实现它。

0 投票
0 回答
53 浏览

openapi - 如何在nestjs/swagger中实现“additionalProperties”:false

如何使用nestjs/swagger 实现“additionalProperties”:false

0 投票
0 回答
33 浏览

nestjs-swagger - 如何为额外的模型添加描述?

我们可以使用@ApiExtraModels()装饰器将模型添加到 OpenApi Schemas。
但是我们如何为这些模型设置描述呢?

即装饰器只获取构造函数 - 还有其他方法可以添加更多信息吗?

0 投票
0 回答
43 浏览

nestjs - Nestjs 版本控制

我正在使用 Nestjs v8.1.1,并尝试设置 api 版本控制。我的目标是在新的 api 版本中仅将那些已更改的方法添加到控制器中,而无需复制其他未更改的方法。例子:

api v1 团队控制器

在 api v2 中,将一个新方法 findAllV2 添加到 TeamsController

到目前为止,一切都很好。在 main.ts 我将 v1 设置为默认版本:

结果:

http://localhost:8080/api/v1/teams -> 工作正常

http://localhost:8080/api/v1/teams/1 -> 工作正常

http://localhost:8080/api/v2/teams -> 工作正常

http://localhost:8080/api/v2/teams/1 -> 不起作用(找不到 url 404)我想在这里得到与 /api/v1/teams/1 相同的结果,而无需复制 findOne()在 v2 中未更改的方法。

0 投票
0 回答
31 浏览

typescript - Typescript 类类型转换

所以,我今天遇到了一个很奇怪的问题。如果我使用@Query() query: GetConfigurationSchema,则最终查询变量为空,GetConfigurationSchema {}. 即使一切都是正确的,然后一旦我将属性设为可选,它也会立即起作用。

在我的功能中,我正在执行以下操作:

获取配置架构

正如你在上面看到的,我有一个非常简单的类,那么为什么只有在使它成为可选之后才起作用呢?

0 投票
2 回答
52 浏览

nestjs - 如何在 Nestjs REST 应用程序中使 URI 版本控制成为可选

遵循此处的文档,可以轻松启用用于 HTTP REST 应用程序的 NestJS URI 版本控制。

然而,文档没有解释如何使 URI 版本控制成为可选。

例子:

/api/v1/users

/api/v2/users

/api/users-> 应该映射到 v1 以允许现有的 webhook 继续工作

问题:

我们如何在 NestJS REST 应用程序中使 URI 版本控制成为可选,以便旧版本(没有任何 api 版本)继续工作?

0 投票
1 回答
172 浏览

nestjs - 为 API 网关生成 NestJS Swagger UI

我无法创建一个端点来提供大张旗鼓的文档。我可以在本地执行此操作的唯一方法是路径末尾是否有双斜杠localhost:3003/dev/swagger//;如果我省略了一个正斜杠,它会为localhost:3003/swagger没有/dev. 部署后,API Gateway 将返回 {"message": "Forbidden"}任一 swagger 端点(带或不带//)。如何让 API Gateway/swagger端点返回 swagger UI?,我不确定我是否错过了一些步骤。

下面是我的 NestJS 应用程序的 main.ts 以及 serverless.yml,这里是一个示例 repo,它具有最少的设置来复制我的问题。https://github.com/MRdgz/serverless-nestj-swagger

main.ts

无服务器.yml

0 投票
1 回答
93 浏览

swagger - Nest + Swagger 无法识别端点或参数

我遇到了 Nest + Swagger 的问题。当我打开我的招摇文档时,我看到了我期望的所有端点,但有两个问题:

  1. 当我单击一个方法时,它会扩展该控制器的所有方法
  2. post 方法说,No parameters尽管为 body 定义了 DTO

最终我认为问题是:Swagger + Nest 并没有operationId为每种方法创建唯一的。我的理解是,只有operationId当方法不够独特时,它们才会无法获得 unique :例如,2 个具有相同调用签名的方法。

过去,当我遇到这样的问题时,要么是因为我缺少@ApiTags装饰器,要么是我不小心包含了重复的端点。

总的来说,我感觉好像我错过了配置 Swagger 的一步,或者我没有使用 Fastify 正确设置它。我安装了fastify-swagger,但实际上并没有在任何地方使用它,但是根据Nest 网站上的文档,/api/json当使用 Fastify 时,swagger JSON 的路径应该是适合我的。


没用的东西:

  1. 独特的标注方法@ApiOperation
  2. 将 a 添加addTag到 DocumentBuilder 链
  3. 删除swagger-ui-express@nestjs/platform-express依赖
  4. 移除所有 Fastify 依赖并切换到 Express 等效

更新:

添加@ApiOperation({ operationId: 'test' })到方法确实可以解决此问题,但我的印象是@nest/swagger自动执行此操作。我的方法不够独特吗?

主要的.ts

一些控制器

ChatMessageDto

大摇大摆的 JSON

0 投票
0 回答
24 浏览

node.js - 如何用不同的属性来描述招摇的响应?

我返回具有不同属性的对象,像这样

但是,我没有看到大摇大摆的结构?

0 投票
0 回答
48 浏览

node.js - @nestjs/swagger 插件中的 NestJS typeorm 分页类型

我有一个端点,它返回一个带有分页的列表。我正在尝试使用 nestjs/swagger 插件自动收集端点和 DTO 等。插件适用于所有端点,除了返回类型为 typeorm 分页的端点。

网页内容是:

任何解决方案?