给定 - 一个供内部使用的 API、一个招摇、一个自定义 JSON 序列化程序以及该序列化程序所遵循的几个属性。
必需 - 基于与序列化程序相同的属性在 swagger 中构建文档。
DTO
public class MyDto
{
[MaxLength(50)]
public string Description { get; set; }
[ShortModelMember]
[MaxLength(50)]
public string Username { get; set; }
...
API方法
[ReturnShortModel]
[HttpGet]
public MyDto GetMyDto()
{
return new MyDto();
}
只有那些标有属性的属性才会被 searilized [ShortModelMember],但是 Swagger UI 中的示例和响应模型仍然会显示完整的类结构。如何解决?有一个想法是在过滤器(Schema、Operation、Document)的帮助下,但是如何在那里设置示例/模型,甚至针对特定的 api 方法——我试图弄清楚,但我还做不到。
您需要做的就是编写一个实现类
IOperationFilter并注册它。以下解决方案允许您在Swagger UI的示例api 方法中使用同一模型的不同视图。实现我们的过滤器
并且不要忘记注册过滤器