基于.NET Core 3.0 的ApiSwagger

2021-01-16 18:13

阅读:637

标签:服务   startup   poi   标识   html   clu   ONBUILD   swagger   nbsp   

一,我们新建.NET Core 3.0的API项目

技术图片

 

 二,neget包Swashbuckle.AspNetCore

技术图片

 

三,修改Startup文件

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();
            //添加Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new OpenApiInfo
                {
                    Version = "v1",
                    Title = "Api Swagger",
                    Description = "基于.NET Core 3.0 的Api Swagger"
                });
                // 加载程序集的xml描述文档
                var baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
                var xmlFile = System.AppDomain.CurrentDomain.FriendlyName + ".xml";
                var xmlPath = Path.Combine(baseDirectory, xmlFile);
                c.IncludeXmlComments(xmlPath);
            });
        }

添加

  // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();
            //启用中间件服务生成Swagger作为JSON终结点
            app.UseSwagger();
            //启用中间件服务对swagger-ui,指定Swagger JSON终结点
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "Vedm API V1");
            });
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }

添加以上代码,然后运行程序发现报错如下

技术图片

 

 四,原因是根目录下没有生成SwapperApi.xml文件,新建文件,格式如下

"1.0"?>
SwapperApi
            ApiController是被swagger标识的特性
            

技术图片

 

文件设置为始终复制

PS,XML文件名是项目命名,原因是配置里

                var baseDirectory = System.AppDomain.CurrentDomain.BaseDirectory;
                var xmlFile = System.AppDomain.CurrentDomain.FriendlyName + ".xml";

决定的

五,再次启动,访问http://localhost:52522/swagger/index.html

成功!!

技术图片

基于.NET Core 3.0 的ApiSwagger

标签:服务   startup   poi   标识   html   clu   ONBUILD   swagger   nbsp   

原文地址:https://www.cnblogs.com/May-day/p/12209658.html


评论


亲,登录后才可以留言!