swagger安装

1.项目安装程序包 Swashbuckle.AspNetCore
2.在StarUp.cs类的ConfigureServices方法中添加代码

 services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("V1", new Info
                {
                    Version = "V1",         //版本(主要)
                    Title = "MoviesSwagger",     //标题(主要)
                    Description = "API描述",//描述
                    TermsOfService = "None",
                    Contact = new Contact   //联系人信息
                    {
                        Name = "ererjie",
                        Email = "123456789@qq.com",
                    }
                });
                // 为 Swagger JSON and UI设置xml文档注释路径
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                var xmlPath = Path.Combine(basePath, "Movies.xml");//xml路径名称(控制器)
                c.IncludeXmlComments(xmlPath);
                var entityXmlPath = Path.Combine(basePath, "Movies.Domin.xml");//xml路径名称(参数类里面可以显示汉字注释)
                c.IncludeXmlComments(entityXmlPath);

            });

在这里插入图片描述
3.在StarUp.cs类的方法Configure中写代码

app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/V1/swagger.json", "V1");
                c.RoutePrefix = string.Empty;
            });

在这里插入图片描述
4.接口参数汉字注释不显示问题
解决方法:将和启动项目此次运行相关的项目和类库都右键–属性–生成 (勾选上xml 文档文件)
在这里插入图片描述
在一开始的StarUp.cs类的ConfigureServices方法中就已经添加解决此问题的代码

                // 为 Swagger JSON and UI设置xml文档注释路径
                var basePath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
                var xmlPath = Path.Combine(basePath, "Movies.xml");//换成自己的xml路径名称(控制器)(参数类里面可以显示汉字注释)
                c.IncludeXmlComments(xmlPath);
                var entityXmlPath = Path.Combine(basePath, "Movies.Domin.xml");//换成自己的xml路径名称(和控制器有直接调用的关系类库)(参数类里面可以显示汉字注释)
                c.IncludeXmlComments(entityXmlPath);

在这里插入图片描述

c.IncludeXmlComments(entityXmlPath, true);//加上true返回值可以有汉字注释

在这里插入图片描述

特别提醒:如果所需要的xml文件没有勾选上,程序就会报not find D:Movies\Movies.xml,所以xml文件(项目名/类库名–邮件–属性–然后就是勾选上xml文件了)一定记得勾选上,如果你所有的代码不是在一个项目里面,还有其他有直接调用的类库之类的文件,切记也要将此类库的xml文件(类库名–邮件–属性–然后就是勾选上xml文件了)勾选上
5.如果所有的配置都配置过了仍然出现如下问题
在这里插入图片描述
解决方法:将控制器中所有的方法都写上请求方式
例如HttpPost或者HttpGet
在这里插入图片描述

6.swagger中方法没有显示返回值
解决方法:在控制器中的方法中直接返回带返回值的类,不能返回JsonResult,return后面也不能用Json,应该直接返回类。
错误例子:
在这里插入图片描述
正确例子:
在这里插入图片描述

  1. 最后的最后我想告诉大家一个我手欠的教训

就是我本来项目Swashbuckle.AspNetCore下载的版本是
2.2,然后我就升级版本到5.6,这个时候还没有报错,我想实验一下就把版本降到2.2,就出错了,我就手忙脚乱的把swagger的版本再升到5.6还是错的,然后我就有些着急想骂人!!!问题如下图
在这里插入图片描述
解决办法:删除项目所有相关的bin文件和obj文件,重新生成项目,如果这时候还显示错误,那就从代码中先复制控制swagger的路径到无痕模式浏览器上,如果有数据,说明没有错,强刷你所使用的浏览器就可以了。

最后祝大家码生一路平安!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值