public FileResult ExportApiWord(string type, string version) { string memi = string.Empty; string fileExten = string.Empty; Stream outdata = null; //获取swagger json 之前通过swagger的接口获取,废弃了。原因:他返回的数据看着像json数据,实则不是,不能用newtonsoft反序列化成对象。 //var url = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}/swagger/v2/swagger.json"; //var data = RestSharpHelper.HttpGet(url); //var model = JsonHelper.StrToModel<OpenApiDocument>(data); //1.获取api文档json,version是版本,根据指定版本获取指定版本的json对象。 var model = _swaggerGenerator.GetSwagger(version); if (model == null) { throw new Exception("Swagger Json cannot be equal to null!"); } //2.这里使用了微软的mvc模板引擎技术来生成html,做过mvc项目的同学应该都知道是啥东西,这里不细说了。自己看代码吧,用起来很方便。 var html = T4Helper.GeneritorSwaggerHtml($"{_hostingEnvironment.WebRootPath}\\SwaggerDoc.cshtml", model); //3.将html转换成需要导出的文件类型。 var op = _spireDocHelper.SwaggerHtmlConvers(html, type, out memi); if (!op.Successed) { throw new Exception(op.Message); } outdata = op.Data; return(File(outdata, memi, $"Titan.Blog.WebAPP API文档 {version}{type}"));//返回文件流,type是文件格式 }
public FileResult ExportApiWord(string type, string version) { var model = _swaggerGenerator.GetSwagger(version); if (model == null) { throw new Exception("Swagger Json cannot be equal to null!"); } var html = T4Helper.GeneritorSwaggerHtml($"{_environment.ContentRootPath}\\Razor\\SwaggerDoc.cshtml", model); Stream data = _spireDocHelper.SwaggerHtmlConvers(html, type, out string memi); return(File(data, memi, $"Titan.Blog.WebAPP API文档 {version}{type}")); }