azure-functions - Swagger 如何同时显示同一 Azure 函数的 put 和 get 版本?
问题描述
我有一个带有以下声明的 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 操作?
解决方案
简而言之:不,没有办法告诉 Swagger 这个 Function 既是 aGET
又是PUT
操作。
有关详细信息,请参阅Justin Yoo对 GitHub 问题的评论不支持一个端点的多个操作(例如,GET、POST)。
这是正确的。尽管从技术上讲,一种 Function 方法可以采用多个 HTTP 动词/方法,但从语义上讲,它应该是两种不同的操作。
因此,我建议将多个动词/方法彼此分开,并给它们各自的操作 ID。
推荐阅读
- typescript - 本地打字稿错误地将数组作为 ["a", ..."b"[]] 而不是 ["a", "b"] 在 TS 操场上
- jsonschema - json模式中的参数化键(v7)
- sql - Sqlite3 - 获取给定行之后的所有行,并将 TEXT 值作为主键
- c++ - 使用基类的注入类名称进行限定的依赖名称查找
- python-3.x - 将字典转换为保留双引号的文件
- c++ - 初始化依赖于子类的继承类的常量类成员
- android - android.content.pm.PackageManager $NameNotFoundException com.google.android.webview React Native
- django - 有没有办法将大文件上传到github
- pytorch - 未找到版本“GLIBC_2.28”
- python - 如何在 Django 3 中创建具有多列的 Trigram 索引