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

标签 c# asp.net-mvc-5 swagger-2.0 webapi

  • 我在 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/

相关文章:

c# - 关联属性未加载到实体上

asp.net-mvc-5 - 同一域中的 Web API 2 项目和 MVC 5 网站项目

asp.net - 轻松实现存储库模式

java - Spring Boot2 Oauth2 隐式流程 - http ://localhost:8080/oauth/authorize getting Access Denied

azure - 使用 Golang 从 Azure Blob 存储下载文件时得到 "curl Empty reply from server",但文件是在后台下载的

c# - 异常处理帮助

c# - Powerpoint 2010 多个实例

c# - SQLite 选择 GUID 中的 ID

asp.net-mvc - Session.SessionTimeout 在 ASP.NET Identity 中是否已弃用

c# - swagger ui中的OData查询