项目中集成了swashbuckle,那么通过访问http://ip:port/swagger/ui/index,可以看到提供的接口列表。接口列表默认是没有提供接口说明信息的,但是swagger内部是集成了一个方法,可以通过读取xml文档添加接口说明。
下面是操作步骤:
1. 设置项目属性 > 生成,勾选XML文档文件。这样在制定文件目录下就可以生成代码的注释xml文件了。
2. 提供方法读取这个xml文档。
private static List<string> GetXmlCommentsPath() { List<string> docs = new List<string>(); var modules = AbpModule.FindDependedModuleTypesRecursivelyIncludingGivenModule(typeof(AbpZeroTemplateWebApiModule)); var baseDirectory = AppDomain.CurrentDomain.BaseDirectory; foreach (var module in modules) { var commentsFileName = module.Assembly.GetName().Name + ".XML"; var commentsFile = Path.Combine(baseDirectory, "bin", commentsFileName); docs.Add(commentsFile); } return docs; //return String.Format(@"{0}\bin\SwaggerUi.XML", System.AppDomain.CurrentDomain.BaseDirectory); }
3. 添加一个SwaggerDocHelper.cs。
public class SwaggerDocHelper { public static void ConfigXmlCommentsPath(SwaggerDocsConfig config, List<string> docs) { foreach (var doc in docs) { if (FileUtils.IsFileExists(doc)) { config.IncludeXmlComments(doc); } } config.ResolveConflictingActions(apiDescriptions => apiDescriptions.First()); } }
4. 配置swagger读取文档。
ok,到这里就配置成功了。检验下效果: