【问题标题】:How can Swagger show both put and get versions of the same Azure function?Swagger 如何同时显示同一 Azure 函数的 put 和 get 版本?
【发布时间】:2021-12-07 20:40:36
【问题描述】:

我有一个带有以下声明的 Azure 函数 (V3)

[Function("GetCases")]
public async Task<HttpResponseData> GetCases([HttpTrigger(AuthorizationLevel.User, "put", "get", Route = "Case/{page}/{pageSize}/{sort}/{filter?}")] HttpRequestData req,
            FunctionContext executionContext, int page, int pageSize, string sort, string filter)
        {
            var logger = executionContext.GetLogger("GetCourtCases");
            logger.LogInformation("GetCourtCases function processed a request.");

            return await g.GetMany(req, page, pageSize, sort, filter);
        }

返回带有排序字符串和可选过滤器的分页数据集。那就是GET操作。使用 PUT,我可以发送一个 JSON 对象,其中包含值列表以及应该搜索这些值的列。

所以基本上我有相同的函数,可以使用 GET 或 PUT 调用,其中 PUT 添加信息,如控制台所示:

问题是,使用 OpenAPI v0.9(最新预览版),swagger 只会显示其中一个配置,具体取决于函数标题中首先指定的配置。

我可以在描述中解释这一点,但是有没有办法告诉 swagger 这既是 PUT 又是 GET 操作?

【问题讨论】:

    标签: azure-functions swagger swagger-ui openapi


    【解决方案1】:

    简而言之:不,没有办法告诉 Swagger 这个函数既是 GET 又是 PUT 操作。

    有关详细信息,请参阅 GitHub 问题 Doesn't support multiple operations (for example, GET, POST) for one endpoint 上的 Justin Yoo's comment

    没错。虽然从技术上讲,一个 Function 方法可以采用多个 HTTP 动词/方法,但从语义上讲,它应该是两种不同的操作。

    因此,我建议将多个动词/方法彼此分开,并给它们各自的操作 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      相关资源
      最近更新 更多