我正在使用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我的模型如何序列化和反序列化?
答案 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
});