Swagger 文档中的驼峰命名法

camelCase in Swagger documentation

是否可以在 Swagger 文档中将 属性 名称更改为驼峰式命名?我正在使用 .NET Core 2.2 和 Swashbuckle.AspNetCore 5.2.1。 我尝试在 Startup.cs 中使用 DescribeAllParametersInCamelCase() 方法,但没有任何改变。 求助!

我的模特:

    {
        public int MyProperty1 { get; set; }
        public int MyProperty2 { get; set; }
        public int MyProperty3 { get; set; }
    }

和在POST方法中为其生成的swagger.json:

 "components": {
    "schemas": {
      "TestModel": {
        "type": "object",
        "properties": {
          "MyProperty1": {
            "type": "integer",
            "format": "int32"
          },
          "MyProperty2": {
            "type": "integer",
            "format": "int32"
          },
          "MyProperty3": {
            "type": "integer",
            "format": "int32"
          }
        }
      }
    }
  }

如何更改为:

 "components": {
    "schemas": {
      "testModel": {
        "type": "object",
        "properties": {
          "myProperty1": {
            "type": "integer",
            "format": "int32"
          },
          "myProperty2": {
            "type": "integer",
            "format": "int32"
          },
          "myProperty3": {
            "type": "integer",
            "format": "int32"
          }
        }
      }
    }
  }

?

我遇到了同样的问题,这是我的解决方法:

我实现了一个执行以下操作的自定义过滤器 (ISchemaFilter)

    public class CamelCasingPropertiesFilter : ISchemaFilter {
        public void Apply(OpenApiSchema model, SchemaFilterContext context)
        {
            model.Properties =
                model.Properties.ToDictionary(d => d.Key.Substring(0, 1).ToLower() + d.Key.Substring(1), d => d.Value);
        }
    }

也许有更可靠的解决方案我不知道。这件事很重要,因为 openapi 定义是生成 api 客户端的基础。 openapi 生成器将使用 PascalCase 属性 名称构建 类,这将在使用时由 api 抛出 ...

希望对您有所帮助!