为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
C#

安装 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;
        }

复制代码

 

 

原文出处: https://www.cnblogs.com/refuge/p/10235522.html  

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消