如何使用Swashbuckle记录查询字符串参数?

问题描述 投票:0回答:1

Swashbuckle在提取C#XML注释以制作Swagger API文档方面做得很好。 Swagger支持记录查询字符串参数。但是如果有办法用XML记录查询字符串参数,那么Swashbuckle会导出它们,我还没有找到它。

我有类似的东西:

    /// <summary>
    /// List all users
    /// </summary>
    /// <param name="?search">String to search for in user IDs and names</param>
    /// <returns>An array of users</returns>
    /// <response code="200">OK</response>
    [ResponseType(typeof(IEnumerable<User>))]
    [Route("")]
    [HttpGet]
    public IHttpActionResult ListUsers()
    {
        IEnumerable<User> users;

        // "?search=<substring>" in the URI searches for users
        // Adapted from https://stackoverflow.com/questions/10656841
        var searchString = Request.GetQueryNameValuePairs()
            .Where(nv => nv.Key == "search")
            .Select(nv => nv.Value)
            .DefaultIfEmpty("")
            .FirstOrDefault();

并且search没有出现在输出中。我尝试删除?,但没有帮助。我怀疑XML注释不直接支持这一点。如果这是真的,我正在寻找最佳实践工作。我正在考虑在<remarks>区块添加几个子弹。有更好的想法吗?

c# xml documentation query-string swashbuckle
1个回答
1
投票

@jps指出了我正确的方向。谢谢!

我结束了:

    /// <summary>
    /// List all users
    /// </summary>
    /// <param name="search">String to search for in user IDs and names</param>
    /// <returns>An array of users</returns>
    /// <response code="200">OK</response>
    [ResponseType(typeof(IEnumerable<User>))]
    [Route("")]
    [HttpGet]
    public IHttpActionResult ListUsers([Optional]string search)
    {
        IEnumerable<User> users;

        var searchString = search == null ? string.Empty : search;
© www.soinside.com 2019 - 2024. All rights reserved.