gpt4 book ai didi

c# - 使用 Swagger 的 Web API MVC5 不会使用带有 header 的 "Try it out!"调用 API

转载 作者:行者123 更新时间:2023-12-04 03:59:40 59 4
gpt4 key购买 nike

  • 我在 Web API MVC5 中配置了 Swagger UI。对于测试 API,在我添加一些 header 参数之前,swagger 工作正常。
  • API 的创建方式是用户名和密码字段位于 header 中,所有其他数据均位于正文中。
  • 标题由 IOperationFilter 添加正如 Web Api How to add a Header parameter for all API in Swagger 中所建议的那样和 OperationFilter添加到 SwaggerConfig.cs如:c.OperationFilter<AddHeaderParameters>();
    public class AddHeaderParameters : IOperationFilter
    {
    public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
    {
    if (operation.parameters == null)
    operation.parameters = new List<Parameter>();

    operation.parameters.Add(new Parameter
    {
    name = "Account Username",
    @in = "header",
    type = "string",
    required = true,
    });
    operation.parameters.Add(new Parameter
    {
    name = "Account Password",
    @in = "header",
    type = "string",
    required = true,
    });
    }
    }

带标题的 Swagger UI enter image description here

需要帮助我错过了什么或做错了什么。

最佳答案

我在问题中得到了上面提到的问题的解决方案。在这里分享可能对其他人有帮助。

当我创建用于在 swagger UI 中获取 header 的类 AddHeaderParameters 时,我给了 header 名称自定义(这是问题的实际原因)。 header 名称应该与实际 header 名称匹配。

就我而言,例如 header 名称是 AccountUserName,我在 swagger header 中使用了它,并将空格作为 Account Username

正确的方法

operation.parameters.Add(new Parameter
{
name = "AccountUserName",
@in = "header",
type = "string",
required = true,
});

关于c# - 使用 Swagger 的 Web API MVC5 不会使用带有 header 的 "Try it out!"调用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63249711/

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