因为公司流程的需要,需要给每个API的Request 和Response 模型及属性加上注解,发现Api项目依赖的Model 类库中的/// Summy的注解并没有作用。
通过翻资料和实践。发现借助 Swashbuckle.AspNetCore.Annotations 包可以实现。
步骤:
- 在模型字段加上 [SwaggerSchema("UserId", ReadOnly = true)] 属性标签
- 在StartUp.cs 的 service 中注册
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Swagger API V1", Version = "v1" });
c.SwaggerDoc("v2", new OpenApiInfo { Title = "Swagger API V2", Version = "v2" });
var filePath = Path.Combine(System.AppContext.BaseDirectory, "Swagger.xml");
c.IncludeXmlComments(filePath);
c.EnableAnnotations();
});
效果
在引用这个包的时候,有部分依赖包存在版本兼容问题。
可以参考原项目:https://github.com/domaindrivendev/Swashbuckle.AspNetCore