.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用

 完整框架项目源码地址:https://download.csdn.net/download/yigu4011/87788956?spm=1001.2014.3001.5503

.net6创建项目的时候自带Swagger框架,但是缺少一些注释功能

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第1张图片

接下来就是封装一些注册代码,注册代码要是都放在program.cs里面,会显得很乱,所以我给他做一个封装,然后program.cs里面只需要services.addxxx()就行了。

在API下面新建SetUp文件夹,新建静态类SwaggerSetUp.cs,再新建静态方法AddSwaggerSetup,用来注册Swagger服务

/// 
    /// swagger启动服务
    /// 
    public static class SwaggerSetUp
    {
        public static void AddSwaggerSetup(this IServiceCollection services)
        {
            if (services == null)
                throw new ArgumentNullException(nameof(services));

            var ApiName = "Web.Core";

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("V1", new OpenApiInfo
                {
                    // {ApiName} 定义成全局变量,方便修改
                    Version = "V1",
                    Title = $"{ApiName} 接口文档——.NetCore 6.0",
                    Description = $"{ApiName} HTTP API V1",
                });
                c.OrderActionsBy(o => o.RelativePath);
                
            });

        }
    }

然后在program.cs里面直接一句话注册就ok了

//注册swagger
builder.Services.AddSwaggerSetup();

 编辑启动swagger的方法

if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

app.UseSwagger();
app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint($"/swagger/V1/swagger.json", $"Web.Core.API V1");

    //路径配置,设置为空,表示直接在根域名(localhost:8001)访问该文件,注意localhost:8001/swagger是访问不到的,去launchSettings.json把launchUrl去掉,如果你想换一个路径,直接写名字即可,比如直接写c.RoutePrefix = "doc";
    c.RoutePrefix = "";
});

 在 launchSettings.json 文件中的 launchUrl设置为空或删除

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第2张图片

启动项目

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第3张图片

添加接口注释

右键项目名称web.core.api,属性,生成,输出,勾选文档文件,自己填写相对路径

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第4张图片

在SwaggerSetUp里面添加代码

services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("V1", new OpenApiInfo
                {
                    // {ApiName} 定义成全局变量,方便修改
                    Version = "V1",
                    Title = $"{ApiName} 接口文档——.NetCore 6.0",
                    Description = $"{ApiName} HTTP API V1",
                });
                c.OrderActionsBy(o => o.RelativePath);

                var xmlPath = Path.Combine(AppContext.BaseDirectory, "Web.Core.API.xml");//这个就是刚刚配置的xml文件名
                c.IncludeXmlComments(xmlPath, true);//默认的第二个参数是false,这个是controller的注释,记得修改
            });

这时候控制器会显示很多警告

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第5张图片在属性的错误与警告里面添加1591

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第6张图片

给控制器加上注释,运行项目

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第7张图片

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第8张图片

 右键解决方案,添加文件夹Model,新建类库项目 

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第9张图片

新建实体类Student.cs

    /// 
    /// 学生表
    /// 
    public class Student
    {
        /// 
        /// id
        /// 
        public int Id { get; set; }
        /// 
        /// 姓名
        /// 
        public string Name { get; set; }
        /// 
        /// 年龄
        /// 
        public int Age { get; set; }
    }

 添加model注释

右键项目名称web.core.model,属性,生成,输出,勾选文档文件,自己填写相对路径

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第10张图片

 SwaggerSetUp.cs中增加代码

var xmlModelPath = Path.Combine(AppContext.BaseDirectory, "Web.Core.Model.xml");//这个就是Model层的xml文件名
c.IncludeXmlComments(xmlModelPath);

在HomeController里面新建一个测试方法测试下实体类的注释

        /// 
        /// 获取Student实体
        /// 
        /// 
        [HttpPost]
        public IActionResult GetStudent(Student student)
        {
            return Ok(student);
        }

运行项目之后发现实体类也有注释了

.Net Core6.0 WebAPI项目框架搭建三:Swagger的使用_第11张图片

你可能感兴趣的:(.netcore,.netcore)