如何为Azure Function C# swagger UI GET参数提供定义

dldeef67  于 12个月前  发布在  C#
关注(0)|答案(1)|浏览(117)

我正在为一些用C#编写的Azure函数编写swagger,但不知道如何添加示例参数或参数定义。我写的代码看起来像这样,并且正确地接受了我的输入并基于它们正确地运行。

public async Task<HttpResponseMessage> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "GetCustomersInQueuesAndField/{companyId}/{branchId}/waitingfields/{waitingFields}/calledfields/{calledFields}")] HttpRequestMessage req,
        [CosmosDB(databaseName: "COSMOS:DATABASE",
           collectionName: "COSMOS:LATCH_TRIGGER_ITEMS_CONTAINER",
           ConnectionStringSetting = "COSMOS:CONNECTION_STRING"
        )]DocumentClient client,
        string companyId,
        string branchId,
        string waitingFields,
        string calledFields,
        ILogger log)

但是Swagger生成的是非常基本的:

我希望能够添加预期内容的定义,以便用户可以更好地理解输入可能是什么样的:

我不知道如何在Swagger中正确地做到这一点。

vhmi4jdf

vhmi4jdf1#

您可以将参数描述添加为XML注解,如下所示:

/// <param name="id">Here is the description for ID.</param>
[ProducesResponseType(typeof(Bar), (int)HttpStatusCode.OK)]
[HttpGet, Route("{id}", Name = "GetFoo")]
public async Task<IActionResult> Foo([FromRoute] long id)
{
    var response = new Bar();
    return Ok(response);
}

但它确实需要满足以下条件:

  • 必须启用XML注解并使用Swagger进行配置
  • 参数应显式地使用[FromRoute]、[FromQuery]、[FromBody]等进行修饰。
  • 方法类型(get/post/put等)也是如此,应该用[Http.]
  • 参数应使用<param...> xml注解进行描述

相关问题