У меня есть конечная точка WebAPI, которая реализует две разные версии API (устаревшую и новую). Устаревшие конечные точки используют специальный сериализатор, в котором все объекты сериализованы как слова нижнего регистра с подчеркиванием, конечная точка v2 использует имена свойств в верблюжьем регистре. Например, V1 = "document_type" и V2 = "documentType".
В настоящее время это достигается с помощью атрибутов контроллера для определения сериализации, например:
public class CamelCaseControllerConfiguration : Attribute, IControllerConfiguration
{
public void Initialize(HttpControllerSettings controllerSettings, HttpControllerDescriptor controllerDescriptor)
{
controllerSettings.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
controllerSettings.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
}
}
Все это отлично работает при вызове из клиента через REST, но документация, созданная Swagger, всегда показывает имена свойств с использованием устаревших настроек сериализатора. Есть предложения по настройке автомата для правильной сериализации каждой версии?