gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:41:26 26 4
gpt4 key购买 nike

我正在玩弄 AutoRestSwagger项目。我的 Web API Controller 有一个名为 GetAllAsync 的方法。当我为服务生成客户端时,客户端有一个接口(interface) IResourcesOperations,其中 Resources 是 Controller 的名称。

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

我发现我可以用属性装饰我的 Controller Action 方法

    [SwaggerOperation("GetResources")]

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

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

有没有一种方法可以使用名为 GetResources(即去掉 WithHttpMessagesAsync 后缀)甚至 GetAllAsync 的方法来生成客户端?

最佳答案

AutoRest(至少最近的版本)生成后缀为 Extensions 的类。这些类包含代理接口(interface)上的扩展方法,允许您使用缩短的方法名称调用方法,就像您所追求的那样。

只需添加一个

@using TheNameSpace.OfYour.Client.Extensions

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

关于c# - 使用 Swagger 命名 AutoRest 生成的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37394905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com