在之前工作项目都是用postman测试,文档说明在自己开发的网站上发布,接触到Swagger后就感觉之前做的太费劲了。下面的内容都是在.Net core 3.1版本上
一、配置Swagger
引入swagger插件。(1)可以去swagger官网或下载github上下载源码(2)利用NuGet包添加程序集应用,“管理NuGet程序包”-搜索“Swashbuckle.AspNetCore”
打开Startup.cs 编辑ConfigureServices类
public string APIName{get;set;} ="Swagger" var basePath =AppContext.BaseDirectory; services.AddSwaggerGen(c=>{ c.SwggerDoc("V1",new OpenApiInfo{ Version="V1", Title=$"{ApiName}接口文档", Description=$"{ApiName}", Contact =new OpenApiContact{Name=ApiName}, License =new OpenAPiLicense{Name=ApiName} }); c.OrderActionsBy(o=>o.RelativePath); })
启动Http中间件,编辑Configure类
public void Configure(IApplicationBuilder app,IWebHostEnvironment env){ if(env.IsDevelopment()){ app.UseDeveloperExceptionPage(); } app.UseSwgger(); app.UseSwaggerUI(c=>{ c.SwaggerEndpoint($"/swagger/V1/swagger.json",$"{ApiName} V1"); //设置为空,表示直接在根域名访问该文件(localhost:8081) c.RoutePrefix=""; }); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
把launchsettings.json中的launchUrl设置为空或删除
添加注释
右键项目名称=>属性=>生成,勾选“输出”下面的“xml文档文件”,系统会默认生成一个文件,然后在“取消显示警告”处添加;1591
配置好了xml文件,接下来需要让系统启动的时候,去读取这个文件了,重新编辑Startup.cs,修改ConfigureServices函数,注意配置的参数 true:
public void ConfigureServices(IServiceCollection services) { var basePath = AppContext.BaseDirectory; services.AddSwaggerGen(c => { c.SwaggerDoc("V1", new OpenApiInfo { Version="V1", Title=$"{ApiName}Swagger接口文档", Description =$"{ApiName}", Contact=new OpenApiContact { Name=ApiName,Email="88888@com"}, License =new OpenApiLicense { Name=ApiName} }); c.OrderActionsBy(o => o.RelativePath); //配置swagger注释 var xmlPath = Path.Combine(basePath, "Swaggertest.xml"); c.IncludeXmlComments(xmlPath, true);//默认的第二个参数是false,这个是controller的注释,记得修改 }); services.AddControllers(); }