ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – 使用Swagger命名AutoRest生成的方法名称

2019-07-06 08:06:56  阅读:392  来源: 互联网

标签:c asp-net-web-api swagger swashbuckle autorest


我正在玩AutoRestSwagger项目.我的Web API控制器有一个名为GetAllAsync的方法.当我为服务生成客户端时,客户端有一个接口IResourcesOperations,其中Resources是控制器的名称.

该接口有一个名为GetAllAsyncWithHttpMessagesAsync的方法.然后是一个名为ResourcesOperationsExtensions的静态类,它定义了一个名为GetAllAsync的方法和一个名为GetAllAsyncAsync的方法.第一个实际上是从线程池(Task.Factory.StartNew)运行第二个新线程.有人知道原因吗?

我发现我可以用属性装饰我的控制器动作方法

    [SwaggerOperation("GetResources")]

这将在客户端类上生成一个名为GetResourcesWithHttpMessagesAsync的方法,并从接口和扩展方法类中删除此Web API操作的所有方法.

现在我的问题是,为什么这三种方法默认生成?

有没有办法使用名为GetResources的方法生成客户端(即摆脱WithHttpMessagesAsync后缀)甚至GetAllAsync?

解决方法:

AutoRest(至少是更新版本)生成带有后缀Extensions的类.这些类包含代理接口上的扩展方法,允许您使用缩短的方法名称来调用方法,就像您之后使用的那样.

只需添加一个

@using TheNameSpace.OfYour.Client.Extensions

到您需要访问这些缩短的方法名称的任何类.

标签:c,asp-net-web-api,swagger,swashbuckle,autorest
来源: https://codeday.me/bug/20190706/1395317.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有