Swagger.JSON 接口配置文件生成C#、Java客户端

工作需要,需要上传数据到供应商的数据库。

供应商使用Swagger建立的RESTful API,然后他们告诉我一个网址,然后去下载他们的xxxx API.swagger.json 文件。

拿到这样一个JSON文件纳闷了很久(PS没听说过),去百度,去邮件问供应商的IT,终于算是有点眉目,在这里记录一下。

API.swagger.json 文件使用的是标准的JSON格式,他就像一个配置文件我们可以用它来生成C#、Java、Objective-C、Angular Js、Node.js的Clien SDK。在此只介绍生成C#和Java 客户端。

生成C#客户端工具:NSwagStudio: generate C# classes

下载地址:https://github.com/RSuter/NSwag/wiki/NSwagStudio

生成Java SDK工具:RestLet

访问地址:https://studio.restlet.com/

一:生成C# Client

首先下载上面提到的NSwagStudio。

 下载好之后打开,

 在界面左边:Input一侧,把JSON文件内容复制到Swagger Specification JSON 面板中。

 在界面右侧:Outputs一侧,Output> CSharp Client > Settings,

 在Settings 中:

 Namespace: xxxx ( 输入命名空间)

 

 Use the base URL for the request – 勾选

 

 Generate the BaseUrl property – 取消勾选

 

 Generate synchronous methods – Tickedif you are using < .NET 4.5 or are happy to use synchronous web calls/Notexperienced with async methods.

 

 BaseClass Name – xxx (客户端类命名)

 

 Class Style – POCO

Swagger.JSON 接口配置文件生成C#、Java客户端

 选好之后往下拉,可以根据自己的需求,进行调整。

 然后点Generate Files就会生成文件!

 生成好文件之后复制到项目中即可(这种方法生成的也可以直接在Visual Studio 2017中使用)。

Swagger.JSON 接口配置文件生成C#、Java客户端

注意:在点击Generate Files之前需要先选定Output file path,不然没法生成文件。

  因为2010版本不支持async/await(2017支持),所以在生成文件之后不能使用这种方法,需要选择其他方法使用。

 (https://*.com/questions/45116931/async-await-in-visual-studio-2010

另外,看到在选择配置的时候有这个选项,以为不勾选就不会生成带async/await的方法,

  但是我去掉勾选之后重新生成,还是存在async/await

Swagger.JSON 接口配置文件生成C#、Java客户端

 

 2.Visual Studio 2017 这个超级无敌厉害巨无霸在2017版本不仅集成了NuGet 程序包管理器,还有就是支持直接添加

   REST API 客户端。

 操作步骤:选中项目,点击右键>添加>REST API 客户端。


Swagger.JSON 接口配置文件生成C#、Java客户端

 接下来,选中 选中现有Swagger元数据文件>浏览>选中自己的JSON文件。

Swagger.JSON 接口配置文件生成C#、Java客户端

 生成好之后需要新建一个类(This is need to authenticate against our particular API with

 anonymous credentials.It does not need any further methods/properties.):

 

 publicclassAnonymousCredential: ServiceClientCredentials

    {

     }

 客户端调用可以HttpClient、RestSharp、Microsoft.Rest。

 RestSharp需要先使用NuGet 安装需要的程序包。

二: 生成Java Client SDK

访问https://studio.restlet.com/链接,进入主界面之后,

在导航栏,选中API>Impot>OAS/Swagger 2.0(根据自己的实际情况选择)。

Swagger.JSON 接口配置文件生成C#、Java客户端

打开Swagger.json 可以看到使用的版本:

  Swagger.JSON 接口配置文件生成C#、Java客户端


选中From file>Choose a file(选择自己的Swagger.json 文件)>Impot。

Swagger.JSON 接口配置文件生成C#、Java客户端

导入完成之后,界面左侧就会出现你导入的API,API提供的方法,以及API包含的类都会在左侧显示。

接下来生成需要的SDK。

同样是在导航栏,

选中EXPORT>Client SDK>Java(Restlet)。选中之后会自动生成一个.ZIP的压缩包。

Swagger.JSON 接口配置文件生成C#、Java客户端

压缩包解压缩之后:

Swagger.JSON 接口配置文件生成C#、Java客户端

其中scr:java文件,包含所需要的各种类。

       pom.xml: Maven的配置文件,需要把里面的配置信息复制到自己的项目中就可,注意对应标签!

倘若项目不是Maven可以根据pom.xml文件知道需要哪些Jar包,分别导入。


PS:因为没接触过Swagger,所以在找工具上走了许多弯路,本来还想说一下安装NuGet,可是网上很多教程。

感谢各位同事对我这个菜鸡提供帮助:)

Visual Studio 2017 使用Swagger生成API文档的教程(这个教程包括怎么生成API和怎么在项目中使用生成的API):

https://www.red-gate.com/simple-talk/dotnet/net-development/visual-studio-2017-swagger-building-documenting-web-apis/

溜了溜了。