Swagger学习笔记

    在之前工作项目都是用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();
        }
原文地址:https://www.cnblogs.com/shuize/p/12936214.html