camelCase в документации Swagger - PullRequest
1 голос
/ 31 марта 2020

возможно ли поменять имена свойств на camelCase в документации Swagger? Я использую. NET Core 2.2 и Swashbuckle.AspNetCore 5.2.1. Я пытался использовать метод DescribeAllParametersInCamelCase () в Startup.cs, но ничего не изменилось. Помогите!

Моя модель:

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

и чванство. json, сгенерированный для него методом POST:

 "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"
          }
        }
      }
    }
  }

?

1 Ответ

0 голосов
/ 01 мая 2020

Я столкнулся с той же проблемой, и вот мой обходной путь:

Я реализовал пользовательский фильтр (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 при использовании ...

Надеюсь, это поможет!

...