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
选好之后往下拉,可以根据自己的需求,进行调整。
然后点Generate Files就会生成文件!
生成好文件之后复制到项目中即可(这种方法生成的也可以直接在Visual Studio 2017中使用)。
注意:在点击Generate Files之前需要先选定Output file path,不然没法生成文件。
因为2010版本不支持async
/await
(2017支持),所以在生成文件之后不能使用这种方法,需要选择其他方法使用。
(https://stackoverflow.com/questions/45116931/async-await-in-visual-studio-2010)
另外,看到在选择配置的时候有这个选项,以为不勾选就不会生成带async
/await
的方法,
但是我去掉勾选之后重新生成,还是存在async
/await
。
2.Visual Studio 2017 这个超级无敌厉害巨无霸在2017版本不仅集成了NuGet 程序包管理器,还有就是支持直接添加
REST API 客户端。
操作步骤:选中项目,点击右键>添加>REST API 客户端。
接下来,选中 选中现有Swagger元数据文件>浏览>选中自己的JSON文件。
生成好之后需要新建一个类(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 可以看到使用的版本:
选中From file>Choose a file(选择自己的Swagger.json 文件)>Impot。
导入完成之后,界面左侧就会出现你导入的API,API提供的方法,以及API包含的类都会在左侧显示。
接下来生成需要的SDK。
同样是在导航栏,
选中EXPORT>Client SDK>Java(Restlet)。选中之后会自动生成一个.ZIP的压缩包。
压缩包解压缩之后:
其中scr:java文件,包含所需要的各种类。
pom.xml: Maven的配置文件,需要把里面的配置信息复制到自己的项目中就可,注意对应标签!
倘若项目不是Maven可以根据pom.xml文件知道需要哪些Jar包,分别导入。
PS:因为没接触过Swagger,所以在找工具上走了许多弯路,本来还想说一下安装NuGet,可是网上很多教程。
感谢各位同事对我这个菜鸡提供帮助:)
Visual Studio 2017 使用Swagger生成API文档的教程(这个教程包括怎么生成API和怎么在项目中使用生成的API):
溜了溜了。