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

javascript - 生成的打字稿似乎是多余的,但我敢打赌不是

NSwag 生成 typescript 类,其属性定义如下:

我知道?意味着该id属性是可选的。我希望这些属性定义实际上与上述相同:

这些定义之间有什么区别?为什么 NSwag 会选择第一个?

0 投票
1 回答
450 浏览

c# - 是否可以引用 .nswag 文件中未定义的 C# 类?

我有一个 .Net Core 项目,其中包含使用 Swagger (Nswag) 生成的多个 API。我还有一些项目包含在多个 API 中使用但未生成的共享类。

现在我想要一个生成的控制器方法返回一个类型的对象,该对象在这些模型项目之一中指定并由我自己编写(不是由 Swagger 生成)

这甚至可能吗?如果可以,我该如何实现?

0 投票
3 回答
18431 浏览

angular - 如何在角度服务中注入 API_BASE_URL(字符串)

这个自动生成的服务(由 NSwagStudio)需要一个 API_BASE_URL(InjectionToken)值来执行 http 请求,我可以如何以及在哪里注入它?

有人可以给我一些关于 InjectioToken 如何工作以及如何将其注入此服务的超级快速提示吗?

Angular5 - Nswag

0 投票
1 回答
1038 浏览

swagger-codegen - 为我的 api 中的每个控制器生成单独的角度服务文件

这会产生一个包含所有生成客户端(角度服务)的单个输出是否可以为每个控制器生成不同的输出(不同的 service.ts)

这是我当前的代码

安装包:NSwag.CodeGeneration.TypeScript

此外,是否可以从程序集生成代码,而不是像 NSwagStudio 那样从 swagger 规范文件生成代码?

0 投票
1 回答
5768 浏览

c# - NSwag 自定义 JSON 输出

我有一堂课:

默认情况下,http://localhost:1234/swaggerNswag.AspNetCore上的 Nswag (包)将其序列化,在预览“示例”输出中:

我想对其进行自定义,以便它仅将 Ip 字段序列化为 astring而没有IPAddress.

为此,我创建了自己的JsonConverter

并验证它可以与 JSON.Net 一起使用。

现在我想把它插入到 NSwag 中。我在 ASP.Net 的 Startup.cs 中修改了 NSwag 设置:

#

不幸的是,当我浏览到http://localhost:1234/swagger以查看我的类的 Json“示例”输出时Test,它仍然包括所有属性,IPAddress而不是Ip字段被序列化为简单的string.

当我调试时,我可以看到里面的代码CustomSwaggerContractResolver被调用,并且转换器被分配,但它IPAddressConverter本身从未被调用。

有什么我想念的吗?

谢谢你。

0 投票
1 回答
174 浏览

javascript - 在 AppModule 声明后添加提供者

Angular 2+ 以下列方式注册提供者:

我想与此声明站点分开注册应用程序范围的提供程序。

具体来说,我正在使用 NSwag 为我的整个 Web API 生成服务客户端,并且我希望将它们全部动态添加为提供程序。但是,我不确定如何做到这一点,因为@NgModule它是应用于此类的属性AppModule

这可能吗?

0 投票
2 回答
4292 浏览

c# - 如何将自定义模型绑定器与 Swashbuckle、Swagger 和 NSwag 一起使用?

我有一个包含以下端点的 ASP.NET Core Web API。

此端点采用 CSV 的 Id 列表(例如/models/a,b,c)并返回相应Model对象的 JSON 数组。 CsvModelBinder<string>IModelBinder我编写的一个自定义实现,它将 Id 的 CSV 列表拆分为一个IEnumerable<string>我可以在我的查询中使用的来查找对象。这一切都很好。

我现在要做的是使用 NSwag 生成客户端库,但这证明是有问题的,因为 Swashbuckle 正在生成 Swagger,它将ids参数描述为IEnumerable<string>,而不是string.

选项 A:有没有办法告诉 Swashbuckle 将参数描述为 astring而不是 a IEnumerable<string>

选项 B:有没有办法告诉 NSwagIEnumerable<string>在生成请求 URL 时应该将此参数编组为 CSV?

0 投票
1 回答
266 浏览

typescript - NSwag.MSBuild TypeScript 版本问题

在 NSwag Studio 中,有一个标志可以为生成的 TypeScript 类型/代码使用特定的 TypeScript 版本。在我的.csproj文件中,我试图完成同样的事情,但它似乎没有任何效果。这是我的 MSBuild 命令:

<Exec Command="$(NSwagExe_Core20) swagger2tsclient /input:$(OutDir)api.json /output:..\api.ts /generateClientClasses:false /typeScriptVersion:2.4 /dateTimeType:Date /nullValue:Undefined /generateDtoTypes:true /markOptionalProperties:true /generateCloneMethod:true /typeStyle:Class /generateDefaultValues:true /generateConstructorInterface:true" />

我假设这不是将 TS 版本作为参数发送到命令行的正确方法。有人知道哪个是正确的参数名称吗?

0 投票
1 回答
2539 浏览

c# - 如何在使用 NSwag 生成的客户端方法名称中包含 Http 请求方法名称

当我使用 NSwag 为 API 生成 C# 客户端时,其中 API 包括可与多种 Http 请求类型(例如 POST、GET)一起使用的端点,客户端为每个请求生成一个具有相同基本名称和数字的方法。

例如使用这个 API:https ://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json

该模式包含一个/contract支持GETPOST请求的端点,以及一个支持/contract/{ID}和请求的端点。GETPOSTDELETE

生成的客户端有方法:

  • ContractAsync对于没有 ID 的 GET 请求
  • Contract2Async对于没有 ID 的 POST 请求
  • Contract3Async对于带有 ID 的 GET 请求
  • Contract4Async对于带有 ID 的 POST 请求
  • Contract5Async对于带有 ID 的 DELETE 请求

我希望它生成名为:

  • GetContractAsync对于没有 ID 的 GET 请求
  • PostContractAsync对于没有 ID 的 POST 请求
  • GetContractAsync对于带有 ID 的 GET 请求(方法重载)
  • PostContractAsync对于带有 ID 的 POST 请求(方法重载)
  • DeleteContractAsync对于带有 ID 的 DELETE 请求

目前我只是手动重命名方法。

是否可以配置 NSwag 来生成这些方法名称?

(或者是否有其他工具可以给我这个结果?)

0 投票
2 回答
452 浏览

json - Angular 5+ 使用来自 asp.net core web api 的数据

我在使用 Angular 5+ 的 ASP.NET Core 2.0 Web API 使用数据时遇到问题。

这是我已经完成的步骤:

  1. 我已经构建了一个 ASP.NET Core 2.0 WebAPI 并将其部署在服务器上。我可以毫无问题地使用邮递员或招摇的数据。
  2. 然后我用 NSwagStudio 为我的 Angular 前端应用程序创建了客户端 TypeScript 服务类。

现在的问题是:我可以从前端应用程序向 wep api 发出请求,并且我还收到了 JSON 格式的正确数据。但是,当映射过程到生成的客户端服务类中的 poco 对象时,有些东西不起作用。我总是得到一个具有空属性的对象。

这是我的代码:

这里是 Product 类的方法:

在我查看数据时的init()方法中,它包含我需要的所有值。但是,例如,当我使用data["ProductId"]时,该值为空/未定义。

有人可以帮忙吗?

谢谢

这是我的控制台输出数据对象的屏幕截图: 在此处输入图像描述