Swagger 在asp.net core中的应用2
2017-03-04 10:02
453 查看
Swagger是一个把api和注释生成一个可视(或可访问)的输出工具,关且还可以进行手工测试我们的api,解决了程序不想写文档的问题(哈哈)。 Swashbuckle.AspNetCore是用来解决asp.net core下的api文档,不但能称显UI,还可以在UI上进行测试。如果在asp.net core中使用swagger,首先在nuget下安装Swashbuckle.AspNetCore,不过现在是预览版,一定要把“包括预发行版”打上勾。
同时还要添加三个引用:Swashbuckle.AspNetCore.SwaggerGen是生成Swagger文档的组件Swashbuckle.AspNetCore.Swagger:是把Swagger文档生成Json Api的组件Swashbuckle.AspNetCore.SwaggerUI,是把Json Api转成页面的组件 接下来设置项目属性,生成-Output节点的XML documentation file打上勾,用来保证能把action上的注释生成xml文档。同时,Controller中的action都要加http特性,这样方例生成swagger文档时能找到准确的api,这点很重要接下来,就要在Starup中去调置Swagger的使用了
代码参考:https://github.com/axzxs2001/Asp.NetCoreExperiment
同时还要添加三个引用:Swashbuckle.AspNetCore.SwaggerGen是生成Swagger文档的组件Swashbuckle.AspNetCore.Swagger:是把Swagger文档生成Json Api的组件Swashbuckle.AspNetCore.SwaggerUI,是把Json Api转成页面的组件 接下来设置项目属性,生成-Output节点的XML documentation file打上勾,用来保证能把action上的注释生成xml文档。同时,Controller中的action都要加http特性,这样方例生成swagger文档时能找到准确的api,这点很重要接下来,就要在Starup中去调置Swagger的使用了
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Swagger测试", Version = "v1", Description = "Swagger测试RESTful API ", TermsOfService = "None", Contact = new Contact { Name = "桂素伟", Email = "axzxs2001@163.com" }, }); //设置xml注释文档,注意名称一定要与项目名称相同 var filePath = Path.Combine(PlatformServices.Default.Application.ApplicationBasePath, "SwaggerDemo.xml"); c.IncludeXmlComments(filePath); //处理复杂名称 c.CustomSchemaIds((type) => type.FullName); }); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseMvc(); app.UseSwagger(c => { //设置json路径 c.RouteTemplate = "docs/{documentName}/swagger.json"; }); app.UseSwaggerUI(c => { //访问swagger UI的路由,如http://localhost:端口/docs c.RoutePrefix = "docs"; c.SwaggerEndpoint("/docs/v1/swagger.json", "Swagger测试V1"); //更改UI样式 c.InjectStylesheet("/swagger-ui/custom.css"); //引入UI变更js c.InjectOnCompleteJavaScript("/swagger-ui/custom.js"); }); }关于更多的UseSwagger参数和UseSwaggerUI参数可参考https://github.com/domaindrivendev/Swashbuckle.AspNetCore 设置中的custom.css和custom.js如下custom.css
.logo__title { font-weight:bold; font-size:0.8em; }
custom.js
var titles=document.getElementsByClassName("logo__title"); titles[0].innerHTML = "Swagger测试";关于美化UI可以运行,查看具体的html Elements,然后去写css或js
代码参考:https://github.com/axzxs2001/Asp.NetCoreExperiment
相关文章推荐
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
- ASP.NET Core 小应用 on Ubuntu 16.04
- ASP.NET Core应用针对静态文件请求的处理[1]: 以Web的形式发布静态文件
- 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)
- 学习ASP.NET Core, 怎能不了解请求处理管道[4]: 应用的入口——Startup
- ASP.NET Core 1.0 中使用 Swagger 生成文档
- 详解如何在ASP.NET Core中应用Entity Framework
- ASP.NET Core 应用在Linux上如何运行
- 解析如何利用一个ASP.NET Core应用来发布静态文件
- 详解ASP.NET Core应用中如何记录和查看日志
- ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- Asp.net Core WebApi 使用Swagger做帮助文档,并且自定义Swagger的UI
- 如何托管ASP.NET Core应用到Windows Service中
- Visual Studio Code和Docker开发asp.net core和mysql应用
- ASP.NET Core 1.0 基础与应用启动
- 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
- 如何在ASP.NET Core中应用Entity Framework
- ASP.NET Core 中文文档 第二章 指南 (09) 使用 Swagger 生成 ASP.NET Web API 在线帮助测试文档