visual-studio - 通过 Connected Services 创建 openapi 客户端后生成错误

标签 visual-studio swagger client openapi

我想向现有项目添加 OpenAPI 服务引用。在连接服务 View 中,使用了下一个值:

enter image description here

然后我单击“完成”,构建项目并将 PetStoreApiClient.cs 添加到项目中。

最后,我尝试在使用 PetStoreApiClient 时(再次)构建解决方案。 Visual Studio 显示多个编译错误,例如:

enter image description here

有几项重复,甚至多次生成baseUrl:

Ambiguity between 'PetStoreApiClient.BaseUrl' and 'PetStoreApiClient.BaseUrl'   ConsoleApp  C:\..\ConsoleApp\ConsoleApp\obj\openapi1Client.cs

csproj 文件包含下一个设置,如第一个屏幕截图所示:

 <ItemGroup>
<OpenApiReference Include="OpenAPIs\openapi.json" CodeGenerator="NSwagCSharp" ClassName="PetStoreApiClient" OutputPath="PetStoreApiClient.cs">
  <SourceUri>https://petstore3.swagger.io/api/v3/openapi.json</SourceUri>
</OpenApiReference>

我应该使用不同的设置吗?在 csproj 中添加设置? GitHub 中描述了类似的问题,但提供的解决方案不起作用。

最佳答案

我遇到了同样的问题,但很难找到好的答案。

直到我发现这个:https://github.com/RicoSuter/NSwag/issues/334

“如果您有多个 Controller ,则必须选择 OperationGenerationMode.SingleClientFromOperationId 或在 Controller 类名称中使用占位符 {controller}。”

所以我的问题通过简单地提供“{controller}Client”作为类名就解决了。

关于visual-studio - 通过 Connected Services 创建 openapi 客户端后生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69107936/

相关文章:

c# - Visual Studio 中的非英语数字格式

c# - 在 mstest 期间创建文件 - System.UnauthorizedAccessException

java - 服务器未从 java tcp/ip 客户端接收数据

node.js - 找不到模块 'oas3-tools'

c++ - 如何将 socket.async_read_some 的读取处理程序调用同步到特定频率?

javascript - 客户端上是Gun.js "safe"吗?

php - Visual Studio 2010 中的原生 PHP 支持?

c - C中数组的和

java - 带有嵌入式 Jetty 的 Swagger

node.js - Yaml 文件中的 Swagger 验证失败