问题标签 [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.
javascript - 生成的打字稿似乎是多余的,但我敢打赌不是
NSwag 生成 typescript 类,其属性定义如下:
我知道?
意味着该id
属性是可选的。我希望这些属性定义实际上与上述相同:
这些定义之间有什么区别?为什么 NSwag 会选择第一个?
c# - 是否可以引用 .nswag 文件中未定义的 C# 类?
我有一个 .Net Core 项目,其中包含使用 Swagger (Nswag) 生成的多个 API。我还有一些项目包含在多个 API 中使用但未生成的共享类。
现在我想要一个生成的控制器方法返回一个类型的对象,该对象在这些模型项目之一中指定并由我自己编写(不是由 Swagger 生成)
这甚至可能吗?如果可以,我该如何实现?
angular - 如何在角度服务中注入 API_BASE_URL(字符串)
这个自动生成的服务(由 NSwagStudio)需要一个 API_BASE_URL(InjectionToken)值来执行 http 请求,我可以如何以及在哪里注入它?
有人可以给我一些关于 InjectioToken 如何工作以及如何将其注入此服务的超级快速提示吗?
Angular5 - Nswag
swagger-codegen - 为我的 api 中的每个控制器生成单独的角度服务文件
这会产生一个包含所有生成客户端(角度服务)的单个输出是否可以为每个控制器生成不同的输出(不同的 service.ts)
这是我当前的代码
安装包:NSwag.CodeGeneration.TypeScript
此外,是否可以从程序集生成代码,而不是像 NSwagStudio 那样从 swagger 规范文件生成代码?
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
本身从未被调用。
有什么我想念的吗?
谢谢你。
javascript - 在 AppModule 声明后添加提供者
Angular 2+ 以下列方式注册提供者:
我想与此声明站点分开注册应用程序范围的提供程序。
具体来说,我正在使用 NSwag 为我的整个 Web API 生成服务客户端,并且我希望将它们全部动态添加为提供程序。但是,我不确定如何做到这一点,因为@NgModule
它是应用于此类的属性AppModule
。
这可能吗?
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?
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 版本作为参数发送到命令行的正确方法。有人知道哪个是正确的参数名称吗?
c# - 如何在使用 NSwag 生成的客户端方法名称中包含 Http 请求方法名称
当我使用 NSwag 为 API 生成 C# 客户端时,其中 API 包括可与多种 Http 请求类型(例如 POST、GET)一起使用的端点,客户端为每个请求生成一个具有相同基本名称和数字的方法。
例如使用这个 API:https ://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json
该模式包含一个/contract
支持GET
和POST
请求的端点,以及一个支持/contract/{ID}
和请求的端点。GET
POST
DELETE
生成的客户端有方法:
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 来生成这些方法名称?
(或者是否有其他工具可以给我这个结果?)
json - Angular 5+ 使用来自 asp.net core web api 的数据
我在使用 Angular 5+ 的 ASP.NET Core 2.0 Web API 使用数据时遇到问题。
这是我已经完成的步骤:
- 我已经构建了一个 ASP.NET Core 2.0 WebAPI 并将其部署在服务器上。我可以毫无问题地使用邮递员或招摇的数据。
- 然后我用 NSwagStudio 为我的 Angular 前端应用程序创建了客户端 TypeScript 服务类。
现在的问题是:我可以从前端应用程序向 wep api 发出请求,并且我还收到了 JSON 格式的正确数据。但是,当映射过程到生成的客户端服务类中的 poco 对象时,有些东西不起作用。我总是得到一个具有空属性的对象。
这是我的代码:
这里是 Product 类的方法:
在我查看数据时的init()方法中,它包含我需要的所有值。但是,例如,当我使用data["ProductId"]时,该值为空/未定义。
有人可以帮忙吗?
谢谢
这是我的控制台输出数据对象的屏幕截图: 在此处输入图像描述