【发布时间】:2016-02-16 19:35:57
【问题描述】:
我有一个 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 生成的文档始终使用旧的序列化程序设置显示属性名称。关于配置 swashbuckle 以正确序列化每个版本的任何建议?
【问题讨论】:
-
你做到了吗?
标签: c# asp.net asp.net-web-api swagger swashbuckle