You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 中使用 NSwag 如何在同一客户端项目中为不同 API 创建多个客户端类

NSwag 生成第二个独立API Client 类操作步骤

你可以根据自己当前使用的NSwag调用方式,对应按以下步骤操作,生成的Client和对应接口会完全独立,不会和第一个API的生成产物冲突:

方式1:使用NSwagStudio图形界面操作

  • 打开NSwagStudio,新建一个独立的配置文件(不要直接修改你之前给第一个API用的.nswag配置文件,避免覆盖原有生成内容)
  • 在新配置的OpenAPI/Swagger Specification标签页中,填入第二个API的swagger文档地址/本地json文件路径,点击「Load OpenAPI/Swagger Specification」加载接口定义
  • 切换到CSharp Client标签页:
    • 把Namespace设置成和第一个Client不同的命名空间,或者直接修改Client Class Name为区别于第一个Client的名称,比如第一个叫OrderApiClient,第二个可以设置为ProductApiClient
    • 确认勾选Generate Interface选项,保留自动生成接口的能力
    • 调整Output File Path为新的文件路径,不要和第一个生成的Client文件路径重复
  • 点击「Generate Files」即可生成完全独立的第二个Client类和对应接口

方式2:使用.NET CLI 命令行操作

  • 直接执行全新的生成命令,指定不同的输出参数即可,示例命令如下:
nswag openapi2csclient /input:第二个API的swagger.json地址 /classname:SecondApiClient /namespace:你的业务命名空间 /output:输出文件路径/SecondApiClient.cs /GenerateInterface:true
  • 只要/classname和/output参数和你第一次生成的参数不同,就不会和原有Client冲突

方式3:使用项目内嵌MSBuild集成操作

  • 打开你的项目的.csproj文件,找到你之前配置的第一个API的NSwag生成节点,直接新增一组独立的<OpenApiReference>节点即可,示例配置:
<!-- 原有第一个API的配置 -->
<OpenApiReference Include="第一个API的swagger.json" CodeGenerator="NSwagCSharp" 
                  Namespace="YourNamespace.Clients" ClassName="FirstApiClient" 
                  OutputPath="Clients/FirstApiClient.cs" Options="/GenerateInterface:true" />

<!-- 新增第二个API的配置 -->
<OpenApiReference Include="第二个API的swagger.json" CodeGenerator="NSwagCSharp" 
                  Namespace="YourNamespace.Clients" ClassName="SecondApiClient" 
                  OutputPath="Clients/SecondApiClient.cs" Options="/GenerateInterface:true" />
  • 保存配置后重新编译项目,就会自动生成两个独立的Client类和对应接口

注意事项

  • 两个API的Client类名不要重复,哪怕放在不同命名空间也建议取不同名称避免调用时混淆
  • 如果两个API有重名的模型类,建议设置不同的模型命名空间,或者勾选Generate DTOs下的Prefix DTO class names配置加前缀区分

内容的提问来源于stack exchange,提问作者GregJF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 04:27:02