我需要从 Visual Basic .NET 项目 (.NET Framework 3.5) 调用 REST API。他们给了我一个 OpenAPI .yaml 文件。在 Swagger 编辑器中,我无法生成 Visual Basic 的客户端,只能生成 C# 的客户端。我尝试从 Swagger 编辑器导出 JSON 并将其作为类粘贴到 Visual Studio 中,但生成的类似乎不正确且不完整。
有没有办法从 OpenAPI 定义生成 Visual Basic .NET 客户端?
我使用 NSwag 库找到了适合我的东西
https://github.com/RicoSuter/NSwag/wiki/OwinGlobalAsax#integration
nuget安装
WebApiConfig.vb
RouteTable.Routes.MapOwinPath("swagger", Function(app) As Owin.IAppBuilder
Return app.UseSwaggerUi(GetType(WebApiApplication).Assembly, Function(opts) As SwaggerUiSettings(Of NSwag.Generation.WebApi.WebApiOpenApiDocumentGeneratorSettings)
opts.MiddlewareBasePath = "/swagger"
opts.GeneratorSettings.DefaultUrlTemplate = "api/{controller}/{action}/{id}"
Return opts
End Function)
End Function)
Web.Config
<configuration>
<appSettings>
<add key="owin:AutomaticAppStartup" value="false" />
<system.webServer>
<handlers>
<!-- Handler swagger -->
<add name="NSwag" path="swagger" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />