• ASP.NET Core 2.2 基础知识(十五) Swagger


     

    安装 Nuget 包

    注册 Swagger

            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
                //注册 Swagger
                services.AddSwaggerGen(sg =>
                {
                    sg.SwaggerDoc("refuge", new Swashbuckle.AspNetCore.Swagger.Info
                    {
                        Title = "我的第一个 Swagger",
                        Version = "版本1"
                    });
                });
            }

    启用 Swagger

            public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
    
                //启用 Swagger
                app.UseSwagger();
                app.UseSwaggerUI(s =>
                {
                    s.SwaggerEndpoint("/swagger/refuge/swagger.json", "My API 1.0.1");//注意,中间那段的名字 (refuge) 要和 上面 SwaggerDoc 方法定义的 名字 (refuge)一样
                    s.RoutePrefix = string.Empty; //默认值是 "swagger" ,需要这样请求:https://localhost:44384/swagger
                });
    
           ......
            }

    修改 launchSetting.json 文件中指定的默认启动路径

    {
      "$schema": "http://json.schemastore.org/launchsettings.json",
      "iisSettings": {
        "windowsAuthentication": false, 
        "anonymousAuthentication": true, 
        "iisExpress": {
          "applicationUrl": "http://localhost:56872",
          "sslPort": 44384
        }
      },
      "profiles": {
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          //"launchUrl": "api/values",
          "launchUrl": "",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        },
        "SwashbuckleDemo2": {
          "commandName": "Project",
          "launchBrowser": true,
          "launchUrl": "api/values",
          "applicationUrl": "https://localhost:5001;http://localhost:5000",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
    }

    CTRL+F5 启动项目

     下面,我们来丰富一下这个 Swagger

    新建一个 PersonsController 

    编辑该项目属性:

     给 Action 添加 XML 注释:

    添加 Swagger 的XML注释提示功能 

            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
                //注册 Swagger
                services.AddSwaggerGen(sg =>
                {
                    sg.SwaggerDoc("refuge", new Swashbuckle.AspNetCore.Swagger.Info
                    {
                        Title = "我的第一个 Swagger",
                        Version = "版本1"
                    });
                    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                    sg.IncludeXmlComments(xmlPath);
                });
            }

     

    设置返回结果

    Person 类如下:

        /// <summary>
        ////// </summary>
        public class Person
        {
            /// <summary>
            /// 编号
            /// </summary>
            public int Id { get; set; }
    
            /// <summary>
            /// 姓名
            /// </summary>
            [Required(ErrorMessage = "姓名不能为空")]
    
            public string Name { get; set; }
    
            /// <summary>
            /// 年龄
            /// </summary>
            public int Age { get; set; }
        }

    -----------------------------------------------------------------------------------

    下面是回复网友的评论:

            /// <summary>
            /// 测试入参是实体,返回值也是实体
            /// </summary>
            /// <param name="person"></param>
            /// <returns></returns>
            [HttpPost]
            [ProducesResponseType(typeof(Person), 250)]//返个250给前端
            public Person GetPerson([FromBody]Person person)
            {
                return person;
            }

  • 相关阅读:
    梅州惊魂~
    又寂寞又美好四月物语
    在 usercontrol中链接外部css文件和js文件的方法
    ResolveUrl的用法
    【转载】常见的敏捷开发流程比较
    Google 排名中的 10 个最著名的 JavaScript 库
    颜色大全:颜色名称和颜色值
    ASP.NET2.0中WEB应用程序的部署
    那些相见恨晚的 JavaScript 技巧
    .net网站发布总结之经验-允许更新此预编译站点(转载)
  • 原文地址:https://www.cnblogs.com/refuge/p/10235522.html
Copyright © 2020-2023  润新知