我想向现有项目添加 OpenAPI 服务引用。在连接服务 View 中,使用了下一个值:
然后我单击“完成”,构建项目并将 PetStoreApiClient.cs 添加到项目中。
最后,我尝试在使用 PetStoreApiClient 时(再次)构建解决方案。 Visual Studio 显示多个编译错误,例如:
有几项重复,甚至多次生成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/