问题标签 [nswag]

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 投票
2 回答
3926 浏览

asp.net-web-api - 从 NSwag 招摇中过滤模式

我有一个带有 API 端点的 ASP.NET 完整框架应用程序。我正在使用 NSwag 生成一个招摇的文档。这一切都有效。

我只需要为一小部分端点生成一个文档。路径被过滤,但模式不是。如何过滤架构对象以匹配路径过滤?

示例:我有这个过滤器

这在启动时:
settings.GeneratorSettings.OperationProcessors.Add(new IncludeControllersInSwagger());

控制器是:

然后生成的招摇只包含一个路径:

仅此而已,这是正确的。

模式包含两者:

BResponse类型不应该在那里。你如何删除它?

在有超过 10 个端点的情况下,这些额外的数据使得 Schemas 部分非常冗长且不适合公共文档,并且只有 2 个通过网关公开并因此以招摇方式记录。

有一个ISchemaProcessor,但它不会像IOperationProcessor.

0 投票
2 回答
91 浏览

c# - 强类型会破坏 HTTP PUT 吗?

我在使用 NSwag 生成的 Api C# 客户端中的更新以及如何使用 HTTP PUT 动词时遇到问题。

假设我有一个名为 customer 的 DTO

我有一个想要修改客户电子邮件的 C# 客户端的消费者。

因此,他创建了对 CustomerPut 的调用以替换资源。

暂时还好。

当我决定在 CustomerViewModel 中添加一个新字段时,问题就出现了

如果我这样做,我的消费者中的代码必须更新,否则他将取消设置 likesApples 属性。这意味着每次过时的客户端尝试更新某些内容时,likesApples 的值都会被删除。

是否有解决方案,这样我就不必为要添加的每个新的简单字段更新客户端代码?

0 投票
2 回答
1812 浏览

swagger - NSwag:在 IIS 上找不到 404 /swagger/v1/swagger.json

我有一个基本的 asp.net core 2.1 web API。我安装了 NSwag.ASPNetCore nuget 包。

这是我的startup.cs。当我在 IIS Express 上运行它时,swagger 工作正常。将其部署到 IIS 后,找不到 404。我需要在某处添加路径吗?

在此处输入图像描述

0 投票
0 回答
794 浏览

.net-core - 如何在 MacOS 上运行 nswag 代码生成脚本

我试图在mac上的vs代码中从终端运行代码生成脚本,但每次我收到以下错误:

这是我试图运行的 ps1 脚本:

0 投票
1 回答
796 浏览

c# - 如何授权 Swagger 使用 MS Graph API

我们正在为 MS Graph API 构建一个 Web API 包装器。

我想使用 Swagger 来测试我的 API。但我无法正确配置。我不断收到错误的请求,没有其他线索。我无法在这台公司笔记本电脑上安装 Fiddler 或其他工具来帮助我进行调查。

这是错误 在此处输入图像描述

这是配置 Swagger 的代码:

我的问题是我做错了什么?

从今天早上开始,我一直在为此苦苦挣扎。任何帮助是极大的赞赏。

谢谢!

2019 年 3 月 21 日更新

我想到了。

改变这个

我还删除了一堆东西,比如 ff 行

它现在正在工作。

至少在外面。

Swagger 告诉我我已经通过了身份验证:

在此处输入图像描述

但是当我运行应用程序时,HttpContext.User.Identity.IsAuthenticated告诉我我不是。

同样的问题:我做错了什么?

0 投票
1 回答
467 浏览

angular - 如何对 nSwag Angular 客户端进行单元测试

我正在尝试为使用 nswag 生成的客户端编写一个简单的单元测试,它看起来

但我收到以下错误:

我尝试了几种方法将其转换newHousehold为 blob,但它总是返回空白或引发其他错误。那么我怎样才能测试这个客户端呢?

仅供参考,我也将 NGXS 用于商店,这就是为什么它调用触发 http 请求的 store.dispatch 的原因。

这是操作的代码

这是代码service.create

这个问题似乎是因为responseType在创建中指定。

0 投票
3 回答
11078 浏览

c# - 如何使用 C# .NET CORE 在 NSwag 文档中添加自定义标题?

我需要添加自定义标题,但无法弄清楚。我正在尝试使用新的 services.AddOpenApiDocument() 而不是 services.AddSwaggerDocument()。我想在我的整个 API 上添加这些自定义标头,而不仅仅是单个方法或控制器。我试图添加一个操作处理器,但是当我加载 swagger UI 时,我收到以下错误“无法呈现此组件,请参阅控制台。”

这是我的片段ConfigureServices()

这是我的操作处理器:

我在我的 Configure() 中唯一与此有关的事情:

这是我的错误和控制台日志: 我的错误和控制台日志

如果它有帮助我正在使用ASP .NET CORE 2.2NSwag.AspNetCore v12.1.0

0 投票
3 回答
1526 浏览

angular - 如何使用 observable 对数据进行分页?

在过去的几天里,我一直在学习 observables,并开始在我的 Angular 应用程序中使用它们。我有一个 Web API 应用程序,我正在通过打字稿中的 NSwagClient 生成一个客户端。我有一个以它为签名的 API 操作:

我在 typescript 中的 API 客户端是这样调用的:

在我看来,当我要求下一次加载产品时(因此,跳过 10 个,取 10 个,然后跳过 20 个,取 10 个),我需要更新初始 _client.GetProductsAsync 调用的参数。但看起来,如果不取消订阅并使用新参数重新订阅可观察对象,我就无法做到这一点。这似乎与我认为可观察对象作为数据流的概念背道而驰,因为可观察对象应该创建一次,然后以某种方式“触发”以获得更多结果并将它们传递给观察者。

如何订阅一次 API 客户端并完成此操作?

0 投票
1 回答
356 浏览

nswag - 使用 NSwagStudio 时在运行时指定 API Endpoint

我有一个由 NSwagStudio 生成的 API 客户端。我的端点之一的构造函数如下所示:

大约生成了 5 个这样的客户端。显然,对于生产环境,我希望我的 API 端点有所不同。目前我使用编译器提示(#if debug)来设置本地或生产端点。

因为所有 5 个客户端都作为单例注入依赖项,有没有一种简单的方法来配置 BaseUrl 以供所有 5 个客户端使用?我知道我可以在所有 5 个客户端的早期设置 BaseUrl,但我觉得必须有一种更简单的方法来完成它,然后只是复制意大利面。

谢谢!

编辑:在 NSwagStudio 中,我尝试创建一个“配置类”,但无法轻松了解如何使用它或将其应用于此场景。

0 投票
2 回答
2819 浏览

c# - 如何使用 NSwag 的 UseSwaggerUi3 加载自定义样式表

我正在尝试使用我自己的 .css 样式表自定义招摇的 UI。

我正在使用 asp net core 2.1 和 NSwag.AspNetCore 12.2.5。

我四处搜索,发现在以前的版本中,这将通过嵌入我的自定义样式表然后将其注入到我的中间件配置中来完成,例如:

在最新版本的 NSwag 中,这似乎已更改为:

但是要么我没有使样式表可用,要么我的 uri 没有正确指向它。

我不完全理解 Web 服务器如何提供 swagger 文件(我假设它们是从 NSwag nuget 包中加载的,但我没有在我的构建输出文件夹中看到它们),所以我假设我没有制作样式表正确可用。

执行上述操作,我看到<link rel="stylesheet" href="css/custom.css">添加到 swagger index.html,但 chrome 开发人员工具说找不到该文件。

我尝试过: 1. 将我的样式表添加到 wwwroot。2. 在项目的某处添加我的样式表,并将其显式复制到我的 csproj 的输出文件夹中。3. 将我的样式表嵌入到构建工件中。

.UseStaticFiles()的中间件管道中有。

我错过了什么?有没有人有一个工作的例子?