【发布时间】:2016-09-20 13:33:43
【问题描述】:
我在玩 AutoRest 和 Swagger 项目。我的 Web API 控制器有一个名为 GetAllAsync 的方法。当我为服务生成客户端时,客户端有一个接口IResourcesOperations,其中Resources是控制器的名称。
该接口有一个名为GetAllAsyncWithHttpMessagesAsync 的方法。然后是一个名为ResourcesOperationsExtensions 的静态类,它定义了一个名为GetAllAsync 的方法和一个名为GetAllAsyncAsync 的方法。第一个实际上从线程池 (Task.Factory.StartNew) 运行第二个新线程。有谁知道这是什么原因?
我发现我可以用属性来装饰我的控制器动作方法
[SwaggerOperation("GetResources")]
这将在客户端类上生成一个名为 GetResourcesWithHttpMessagesAsync 的方法,并从接口和扩展方法类中删除此 Web API 操作的所有方法。
现在我的问题是,为什么默认生成这三个方法?
有没有办法使用名为GetResources 的方法(即去掉那个WithHttpMessagesAsync 后缀)甚至GetAllAsync 来生成客户端?
【问题讨论】:
标签: c# asp.net-web-api swagger swashbuckle autorest