设为首页 收藏本站
查看: 1231|回复: 0

[经验分享] swagger for c# webapi

[复制链接]

尚未签到

发表于 2017-12-29 06:07:51 | 显示全部楼层 |阅读模式
  最近迷上了前后端分离的开发架构,工作中的项目几乎都采取这种模式,自己主要担任服务端RestFul风格的Webapi开发。那么问题来了,当前端开发人员找我要api说明文档的时候,曾一度非常可耻的冒出过word、excel之类的想法,oh my god!我一定是昨晚吃的东西还没消化,吃撑了。好了,言归正传,在团队开发中,一个好的 API 文档可以减少很多 交流成本 ,也可以使一个新人快速上手业务。so,swagger就是一个非常不错的选择,而且现在nuget中可以安装swagger的.net支撑包,这就更加便捷了,完全可以将开发人员从api文档的编写工作中解放出来。
  具体的操作方式如下:
  1、新建一个webapi 2项目,这里就不再赘述了
  2、使用程序包管理器控制台安装Swashbuckle,命令如下:Install-Package Swashbuckle
DSC0000.png

  3、安装好以后,会自动在项目的App_Start文件夹下新建一个SwaggerConfig.cs文件
DSC0001.png

  4、打开项目的属性配置窗口,在生成选项卡中勾选XML文档文件,并配置文档路径及名称为bin\Swagger.xml(具体名字可随个人喜好或者项目的统一规范标准进行命名)
DSC0002.png

  至此就已经OK了,调试运行模式/发布到iis后,在http://baseurl/swagger/ 下即可看到所有controll及其下所有的api
DSC0003.png

  展开Account后的界面
DSC0004.png

  但是,问题来了,我的api为什么都没有说明性的文字呢?我在代码中明明是增加了方法注释的呀
DSC0005.png

  好吧,不用着急,做几步简单的处理即可解决这个问题
  1、在SwaggerConfig.cs中,打开Register方法里的c.IncludeXmlComments(GetXmlCommentsPath());这句代码
  2、新增GetXmlCommentsPath方法
  private static string GetXmlCommentsPath()
  {
  return System.String.Format(@"{0}\bin\swagger.XML", System.AppDomain.CurrentDomain.BaseDirectory);
  }
  注意,上面代码中的文档路径要跟项目属性中配置的一样,包括名称和路径地址,我之前配置的时候就只写了Swagger.XML,忘记了bin\目录
  好了,再次调试运行/发布到iis(已经发布到IIS的直接编译一下即可),大功告成。
DSC0006.png

  swagger非常棒的一个特性,就是可以直接测试
DSC0007.png

  在Value中输入参数,点击Try it out!,即可看到api的返回结果
DSC0008.png

  怎么样,很棒吧!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-429185-1-1.html 上篇帖子: Nancy简单实战之NancyMusicStore(五):部署上线 下篇帖子: Server in ASP.NET-Core
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表