使用Swashbuckle自定义生成模型文档

时间:2018-08-07 14:16:50

标签: asp.net .net-core swagger swashbuckle

我正在使用Swashbuckle为我正在编写的ASP.NET核心API生成详尽的文档。在我的API中,我使用了许多自定义的Json转换器,因此,我接收并返回的json看起来与C#类的定义并不完全相同。例如,我可能有一个这样的课程:

public class MyModel
{
    private MyClass complicatedField;
}

将被序列化为

{
    "complicatedField": "String representation of the object"
}

但是,Swashbuckle将其记录为

{
    "complicatedField": {/*Json object of all the fields MyClass has*/}
}

如何告诉Swashbuckle我的模型如何序列化和反序列化?

1 个答案:

答案 0 :(得分:2)

由于您正在将类型更改为原始类型,因此可以使用MapType。否则,您将使用SchemaFilter

.Net Framework 的调用扩展方法是在启动时某处进行的,即。 program.cs

httpConfiguration.EnableSwagger(c =>
      {
          c.MapType<MyClass>(() => new Schema { type = "string" }); // add additional schema info here
          // other configs
      });

.Net Core 在startup.cs中的configure services方法中放置

services.AddSwaggerGen(c =>
     {
          c.MapType<MyClass>(() => new Schema { Type = "string" });// add additional schema info here
          // other configs
     });