因為公司流程的需要,需要給每個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