新建一个ASP.NET Core Web应用程序

.NET Core Api集成swagger 随笔 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

这里选择API模板

.NET Core Api集成swagger 随笔 第2张

 

生成项目之后,控制器默认生成了一个ValuesController,里面只有几个简单的RESTful风格的接口,分别对应增删改查的功能,没有涉及到数据库数据,只是给我们作为参考而已。

.NET Core Api集成swagger 随笔 第3张

 

我们可以直接F5进入调试运行状态,默认调用的是values的获取集合接口,结果是这样的:

.NET Core Api集成swagger 随笔 第4张

 

这是一个最基础、最原生的“光秃秃”的.NET Core API环境,离我们想要的API框架还很远,但是其实已经成功一半了,因为好的开始是成功的一半~

 

接下来,我们要在项目里集成Swagger插件。

Swagger是一个API接口文档帮助插件,使用它,可以将我们编写的接口自动生成一个规范化的文档,其他开发人员(主要是负责的对接接口的前端人员)就可以通过浏览器访问对应的地址,查看接口的相关信息。

当然,swagger也提供了基础的测试功能,这个下一章再讲~

 

下面开始引入swagger插件

方法有两个:

1)可以去swagger官网或github上下载源码,然后将源码(一个类库)引入自己的项目;

2)直接利用NuGet包添加程序集应用。

因为很少有需要更改swagger源码的需求,所以这里我们选择比较简单的第二种方法。

依次点击 工具=>NuGet包管理器=>管理解决方案的NuGet程序包

.NET Core Api集成swagger 随笔 第5张

 

 

在弹出的页面中,搜索“Swashbuckle.AspNetCore”,然后勾选RayPI项目(如果解决方案里有多个类库,只需要勾选主项目,也就是包含控制器的项目),点击安装

.NET Core Api集成swagger 随笔 第6张

 

安装完成之后,在项目的依赖项里可以看到多出了一个引用

.NET Core Api集成swagger 随笔 第7张

这时如果运行调试,在域名后面输入/swagger,会发现wagger还没有起作用,因为还没有在项目的启动项里添加swagger服务。

 

下面添加服务:

打开Startup.cs类,编辑ConfigureServices类

 

 
// This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();

            #region Swagger
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info
                {
                    Version = "v1.1.0",
                    Title = "WebAPI",
                    Description = "框架集合",
                    TermsOfService = "None",
                    Contact = new Swashbuckle.AspNetCore.Swagger.Contact { Name = "test", Email = "test@qq.com", Url = "http://www.xx.com" }
                });
            });
            #endregion
        }
 

编辑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();
            }

            app.UseMvc();

            #region Swagger
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "ApiHelp V1");
            });
            #endregion
        }
 

 

到这,已经完成swagger的添加,F5运行调试,在域名后面输入/swagger,点击回车

.NET Core Api集成swagger 随笔 第8张

可以看到,swagger将我们项目的接口(这里只有一个系统默认生成values接口)自动生成一个可视化的接口文档,点击对应接口,可以查看接口的相关信息,也可以在当前页进行简单的测试调用。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄