C#(.Net Core WebAPI)之API文档的生成(Swagger)
admin
2023-02-15 08:20:05
0

一 : 安装Swagger

Swashbuckle.AspNetCore
在NuGet 中,安装 Swashbuckle.AspNetCore :
C#(.Net Core WebAPI)之API文档的生成(Swagger)
我使用的版本为 : 5.0.0-rc2

二 : 引入Swagger功能

Ⅰ : Startup.cs
① ,ConfigureServices方法中:

public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddJsonOptions(options =>
            {
                options.SerializerSettings.Formatting = Formatting.Indented;
            });
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new OpenApiInfo()
                {
                    Title = "Swagger Test UI",
                    Version = "v1",
                    Description = "Aonaufly first ASP.NET Core Web API"
                });
                options.CustomSchemaIds(type => type.FullName); // 解决相同类名会报错的问题
                options.IncludeXmlComments(Path.Combine(Directory.GetCurrentDirectory(), "WebAPIPoco.xml")); // 标注要使用的 XML 文档
                options.DescribeAllEnumsAsStrings();
            });
        }

②:Configure中

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
            //设置全局跨域
            app.UseCors(builder => builder.AllowAnyOrigin());
            app.UseHttpsRedirection();
            app.UseSwagger(c => { c.RouteTemplate = "swagger/{documentName}/swagger.json"; });
            // 在这里面可以注入
            app.UseSwaggerUI(options =>
            {
                options.ShowExtensions();
                options.ValidatorUrl(null);
                options.SwaggerEndpoint("/swagger/v1/swagger.json", "Aonaufly API V1");
                options.DocExpansion(DocExpansion.None);
            });
            app.UseMvc();
        }

三 :配置设置

①,到处项目XML , 加入1591禁止警告
C#(.Net Core WebAPI)之API文档的生成(Swagger)
②,将项目XML生成路径复制到项目根路径
copy $(TargetDir)WebAPIPoco.xml $(ProjectDir)WebAPIPoco.xml
C#(.Net Core WebAPI)之API文档的生成(Swagger)
③,重置默认网页为swagger , 默认是 api/values
C#(.Net Core WebAPI)之API文档的生成(Swagger)

四 :初始结果

C#(.Net Core WebAPI)之API文档的生成(Swagger)

五 : 测试

/// 
        /// 带参数的get请求
        /// 
        /// 
        /// 
        /// 输入 : int
        /// 输出 : string
        /// 
        /// 
        /// ID号
        /// String 
        /// 返回字符串
        /// 如果id为空
        // GET api/values/5
        [HttpGet("{id}")]
        [ProducesResponseType(201)]
        [ProducesResponseType(400)]
        public ActionResult Get(int id)
        {
            return "value";
        }

结果:
C#(.Net Core WebAPI)之API文档的生成(Swagger)

相关内容

热门资讯

今日重大通报“诸暨游戏.开挂器... 网上科普关于“诸暨游戏有没有挂”话题很是火热,小编也是针对诸暨游戏作*弊开挂的方法以及开挂对应的知识...
【今日要闻】“天天爱掼蛋.到底... 网上科普关于“天天爱掼蛋有没有挂”话题很是火热,小编也是针对天天爱掼蛋作*弊开挂的方法以及开挂对应的...
【今日要闻】“白金岛.辅助器?... 网上科普关于“白金岛有没有挂”话题很是火热,小编也是针对白金岛作*弊开挂的方法以及开挂对应的知识点,...
【第一资讯】“乐酷炸金花.开挂... 【第一资讯】“乐酷炸金花.开挂神器?”太坑了果然有挂您好,乐酷炸金花这个游戏其实有挂的,确实是有挂的...
“姐姐为亡弟追凶27年”案被告... 澎湃新闻记者 陈绪厚12月23日上午,备受外界关注的“姐姐为亡弟追凶27年”迎来一审宣判,广东湛江中...
最新引进“皇豪众娱牛牛.辅助器... 有 亲,根据资深记者爆料皇豪众娱牛牛是可以开挂的,确实有挂(咨询软件无需...
终于懂了“越乡游义乌麻将.辅助... 网上科普关于“越乡游义乌麻将有没有挂”话题很是火热,小编也是针对越乡游义乌麻将作*弊开挂的方法以及开...
思特威、豪威国产旗舰传感器大曝... IT之家 12 月 23 日消息,博主 @数码闲聊站 今日爆料了多款国产旗舰手机影像传感器的后续规划...
【今日要闻】“胡一把麻将.可以... 【今日要闻】“胡一把麻将.可以开挂吗?”详细开挂教程您好,胡一把麻将这个游戏其实有挂的,确实是有挂的...
交通数智化转型提速 智慧赋能“... 人民网北京12月23日电 (记者乔雪峰)交通运输是培育新质生产力的关键领域,智慧交通作为交通强国建设...