首页 文章

使用Swagger定义生成c#客户端

提问于
浏览
0

我正在尝试使用Swagger示例Petstore定义.json文件 - https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v2.0/json/petstore.json

我使用VS 2017>添加>添加REST Api客户端功能 . 导入成功,Swagger Petstore代理类已成功生成并添加到我的项目中 .

enter image description here

现在我想编写实际上能够调用Petstore API的C#代码 . 我无法找到任何利用 proxy classes above 的具体示例 .

我使用REST服务的方式一直在使用C#中的Web Client类 -

string sendText = "abc";
WebClient client = new WebClient();
c.Headers[HttpRequestHeader.ContentType] = "text/xml";
result = c.UploadString(url, sendText);

如何在Pet Store API上编写调用PUT GET POST等操作的代码?

1 回答

  • -1

    您可以使用OpenAPI CodeGen(以前称为swagger)自动生成可由代码调用的API客户端存根(使用各种语言) . 最简单的方法是针对OpenAPI定义JSON模型运行jar文件 . 这就是你在Powershell中的表现 .

    下载swagger-codegen-cli.jar文件,然后使用你的json模型 . 这是一个例子:

    下载文件

    Invoke-WebRequest -OutFile swagger-codegen-cli.jar http://central.maven.org/maven2/io/swagger/swagger-codegen-cli/2.3.1/swagger-codegen-cli-2.3.1.jar
    

    然后运行生成器并输出C#

    java -jar .\swagger-codegen-cli.jar generate -i petstore.json -l csharp-dotnet2 -o client
    

    这将为输出创建一个客户端文件夹 . 结果应包含Api,Client和Model子文件夹 . C#Client将包含可用于进行API调用的存根,它具有RestSharp依赖性 . 然后,您可以使用通用HTTP客户端方法调用客户端方法 .

相关问题