当前位置: 首页 > 知识库问答 >
问题:

。net swashbuckle,文档endpoint查询参数没有在签名中

秦信瑞
2023-03-14

我使用“消息”中的查询参数,这些参数可以超过 100 个并且是可选的。符号应保持这种形式。

所以我的问题是,如何记录一些查询参数,以在招摇的 UI 中显示并保持可尝试性?

/// <summary>
/// Callback Endpoint
/// </summary>
/// <returns>HTTP 200 <see cref="HttpStatusCode.OK"/>.</returns>
/// <param name="message">The message</param>
[HttpGet]
[SwaggerParameter("Something", "It is something")]
[Route("endpoint", Name = nameof(Endpoint))]
public virtual async Task<HttpResponseMessage> Endpoint(HttpRequestMessage message)

要忽略“HttpRequestMessage”,我使用OperationFilter:ASP。Net Web API Swashbuckle如何忽略HttpRequestMessage

config.EnableSwagger(swagger =>
            {
                swagger.OperationFilter<IgnoreHttpRequestMessage>();
                swagger.OperationFilter<SwaggerParameterAttributeHandler>();
[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
    public class SwaggerParameterAttribute : Attribute
    {
        public SwaggerParameterAttribute(string name, string description)
        {
            Name = name;
            Description = description;
        }

        public string Name { get; private set; }

        public string Description { get; private set; }

        public bool Required { get; set; } = false;
    }
public class SwaggerParameterAttributeHandler : IOperationFilter
    {
        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
        {
            // Get all SwaggerParameterAttributes on the method
            var attributes = apiDescription.ActionDescriptor.GetCustomAttributes<SwaggerParameterAttribute>(true);

            if (operation.parameters == null)
            {
                operation.parameters = new List<Parameter>();
            }

            foreach (var attribute in attributes)
            {
                var parameter = operation.parameters.FirstOrDefault(p => p.name == attribute.Name);

                if (parameter != null)
                {
                    parameter.required = attribute.Required;
                }
                else
                {
                    operation.parameters.Add(new Parameter()
                    {
                        name = attribute.Name,
                        description = attribute.Description,
                        type = "string",
                        required = attribute.Required
                    });
                }
            }
        }
    }

共有1个答案

裴昊阳
2023-03-14

我得到了一个要点,得到了这个问题的答案。我把这篇文章留在这里,也许有人需要。

新参数的问题是,需要填写“in”。之后,在swaggerUI上的试用按钮工作正常。

operation.parameters.Add(new Parameter()
                    {
                        name = attribute.Name,
                        description = attribute.Description,
                        type = "string",
                        required = attribute.Required,
                        @in = "query"
                    });
 类似资料:
  • 我必须将此添加到我执行的每个搜索查询中。我有一个大约20,000个文档的索引,我真的不想重建它,因为我在上一个版本中让我的用户重建了他们的索引。注意:这是在android设备上,所以需要很长的时间和大量的电池来重新索引他们的所有文档。 谢谢你的帮助。

  • 我的问题的背景 null 谢谢你的帮助!

  • 我希望我们拥有iPhone的员工能够让公众对一份文件进行数字签名,该文件最初是基于Spring的网络表单。 此表格仅在我们的内部网上,仅由我们的员工填写。 到目前为止,我的研究考虑了一些可能的解决方案: 手机屏幕上的电子湿墨水签名 目的是证明某个人签署了一份文件。 1从技术上讲是可能的,但并不重要,因为它很容易被复制。 是否可以在iOS设备上通过浏览器和javascript捕获指纹? 3能适应这种

  • 我一直在网络和java教程中寻找这一点。但我没有澄清如何为文档生成数字签名。java教程对此进行了解释,但我真正想要的是 用户附带一个文件和一个字符串密钥 使用该密钥,文件被数字签名 相应的公钥,该标志与该文档一起发布 那么,如何转换给定的String私钥来做到这一点。在尝试java教程和web中给出的示例(带有将字节从字符串而不是文件中放置的一些变体)时,我遇到了如下异常

  • 我在看官方的PDF规范。我在这里遇到了一个数字签名的PDF。当我分析它的目录字典时,我看到了这样的: 我对此有一些疑问: > 根据规范的第736页,没有属于的参数(第733页)。当然,PDF可能已经被某个第三方修改了,他们在字典中添加了一个无关的键。但我只想确认,如果在中发现键,是要忽略它,还是它有某种意义? 我明白PDF中的数字签名是通过签名字段进行的。数字签名是否可能不是签名字段,即数组项中没

  • 我想知道EXPRESS如何解析同名的多个查询参数;我在任何地方都找不到任何有用的参考资料。我想具体了解EXPRESS,它将如何处理这个URL