我认为将 Visual Studio 中的“REST API Client”生成工具描述为“spartan”是公平的。
这个答案可能为时已晚,无法帮助您,或者您可能无法使用其他工具,但希望对您和/或未来的读者有所帮助,我将详细说明我是如何在NSwagStudio中生成 REST 客户端的它重用了我现有的类和枚举。(NSwagStudio 是免费和开源的,我没有隶属关系)。
在左侧窗格中,我们选择输入。除了预期的 Swagger 提要之外,还有一些有趣的选项,例如“通过反射的 Web API”,它“使用 .NET 反射来分析 ASP.NET Web API 或 ASP.NET Core 控制器”——这是我使用的选项,但我的屏幕截图显示了默认 Swagger 输入。
在右侧窗格中,单击“CSharp Client”并切换到“CSharp Client”选项卡。
灵丹妙药是取消勾选“生成 DTO 类型”:
这将导致它只生成客户端,因此您可以重用现有的 DTO。
您需要为客户端指定一个命名空间,以及可选的一个或多个命名空间,这些命名空间将作为using
指令添加到生成的 C# 文件中。例如,如果您希望您的客户端在命名空间中MyNamespace
并且您的模型类在其中,SomeOtherNamespace
您将输入以下内容:
玩这些选项非常值得。关于一些默认值以及我对它们感到满意的一些快速说明:
被HttpClient
注入并且您控制生命周期(在我看来这是一件好事)
定义了一个BaseUrl
属性。我还没有对此进行测试,但我希望通过查看生成的代码,这将允许我安全地启动客户端类的多个实例以与共享相同 API 的多个服务器通信
该JsonSerializerSettings
属性是protected
,但可以通过UpdateJsonSerializerSettings
部分方法配置
我已经从File
菜单中保存了我的设置,并将.nswag
文件添加到源代码管理中,这样我以后可以在必要时轻松地重新生成客户端。