gpt4 book ai didi

swagger - Azure Functions 和 Swagger UI - 如何在 swagger UI 中显示查询字符串参数?

转载 作者:行者123 更新时间:2023-12-01 21:21:50 28 4
gpt4 key购买 nike

我有以下 HTTP 触发的 Azure 函数。我已经使用此链接为我的端点设置了 Swagger here .以下 API 需要一组查询字符串参数,即 "name"、"email"、"phone",因此它可以对目标对象进行一些搜索。目前函数的主体当然没有实现,但这对这个问题来说无关紧要。

我的问题:如何在 swagger UI 中显示查询字符串参数?

函数:

[FunctionName(nameof(GetBookingCalendarsFunction))]
public async Task<IActionResult> GetAllAsync(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET", Route = "bookings")] HttpRequest request,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");

return new OkObjectResult($"Name: {request.Query["name"]}, email: {request.Query["email"]}, phone: {request.Query["phone"]}");
}

此功能的 swagger UI

enter image description here

注意:我不想使用路由值而不是查询字符串参数,因为这些参数是可选的,调用者可能不想提供其中之一。

例如,我尝试了以下方法,但如果您删除任何参数,它将失败并显示 404,因为它将它们作为路由的一部分(即使它会在 Swagger 中显示它们)

  [FunctionName(nameof(GetBookingCalendarsFunction))]
public async Task<IActionResult> GetAllAsync(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET", Route = "bookings/name={name}&email={email}&phone={phone}")] HttpRequest request,
string name, string email, string phone,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");

return new OkObjectResult($"Name: {request.Query["name"]}, email: {request.Query["email"]}, phone: {request.Query["phone"]}");
}

我已经在谷歌上搜索了几个小时,但到目前为止找不到任何有用的东西。感谢您的帮助。

最佳答案

由于您使用包AzureExtensions.Swashbuckle将Swagger集成到Azure功能中,我们可以使用属性QueryStringParameter根据您的需要配置查询字符串。更多详情请引用here

例如

 [FunctionName("GetBookingCalendarsFunction")]
[QueryStringParameter("name", "this is name", DataType = typeof(string), Required = false)]
[QueryStringParameter("email", "this is email", DataType = typeof(string), Required = false)]
[QueryStringParameter("phone", "this is phone", DataType = typeof(string), Required = false)]
public static async Task<IActionResult> GetAllAsync(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "bookings")] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");



return new OkObjectResult($"Name: {req.Query["name"]}, email: {req.Query["email"]}, phone: {req.Query["phone"]}");
}

enter image description here

关于swagger - Azure Functions 和 Swagger UI - 如何在 swagger UI 中显示查询字符串参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63722012/

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