ASP.NET WEBAPI 使用Swagger生成API文档

摘要:
1、 安装并创建一个没有身份验证的新mvc项目-SwagerMvc5Demo,然后添加一个名为Remote(自定义)的ApiController开源地址,该地址包含基本的读写(而不是手写):选中GenerateXML文档文件。2.在_将代码添加到Layout.cshtml文件中添加导航链接<在文件夹App_ Start中,会自动生成一个配置文件swagger。配置。

一、安装

新建一个没有身份验证的mvc项目 - SwaggerMvc5Demo,然后添加一个名为Remote(自定义)且包含基础读写(不想手写)的ApiController
ASP.NET WEBAPI 使用Swagger生成API文档第1张
 ASP.NET WEBAPI 使用Swagger生成API文档第2张
开源地址:https://github.com/domaindrivendev/Swashbuckle
使用以下方法来添加 Swashbuckle:
  • 从“程序包管理器控制台”窗口:Install-Package Swashbuckle -Version 5.6.0
  • 从“管理 NuGet 程序包”对话框中:
    • 右键单击“解决方案资源管理器” > “管理 NuGet 包”中的项目
    • 将“包源”设置为“nuget.org”
    • 在搜索框中输入“Swashbuckle”
    • 从“浏览”选项卡中选择“Swashbuckle”包,然后单击“安装”
 

二、配置

1.项目属性->勾选生成xml文档文件
ASP.NET WEBAPI 使用Swagger生成API文档第3张
ASP.NET WEBAPI 使用Swagger生成API文档第4张
2.添加导航链接
在_Layout.cshtml文件中添加代码
<li>@Html.ActionLink("Swagger Help", "", "Swagger", new { area = "" }, null)</li>
3.修改SwaggerConfig.cs文件
 安装完成后,在文件夹App_Start自动生成一个配置文件 swagger.config。这里可以做多版本控制,定义扩展功能,自定义显示ui的样式脚本,可以配置过滤、权限等。
例如:
(1)为接口添加xml注释
string path = string.Format("{0}/bin/SwaggerMvc5Demo.XML", System.AppDomain.CurrentDomain.BaseDirectory);
c.IncludeXmlComments(path);
使用前
ASP.NET WEBAPI 使用Swagger生成API文档第5张
ASP.NET WEBAPI 使用Swagger生成API文档第6张
使用后
ASP.NET WEBAPI 使用Swagger生成API文档第7张
ASP.NET WEBAPI 使用Swagger生成API文档第8张
(2)使用特性 [Obsolete]
在config中 开启 c.IgnoreObsoleteProperties();
ASP.NET WEBAPI 使用Swagger生成API文档第9张
 ASP.NET WEBAPI 使用Swagger生成API文档第10张
 
 
 

三、调用

1.直接调用
只要输入参数id,即可调用,非常方便
ASP.NET WEBAPI 使用Swagger生成API文档第11张
ASP.NET WEBAPI 使用Swagger生成API文档第12张
2.AutoRest
AutoRest (https://github.com/Azure/AutoRest), 简单来说,就是一个EXE工具,可以根据Swagger的结构生成服务的客户端,这个客户端可以让你像调用本地方法一样调用服务,方法内部包装了Http请求。 
详细教程请看 https://www.cnblogs.com/Leo_wl/p/5982882.html
 
扩展:ABP集成swagger
http://www.cnblogs.com/wer-ltm/p/5776024.html
 
 

四、错误记录

swagger出现问题:not supported by swagger 2.0

一个controller中只能有一个HttpGet请求,多了就会报错。建议减少重载方法,将其他Get方法分开

如果在swagger.config中加上c.ResolveConflictingActions(apiDescriptions => apiDescriptions.FirstOrDefault());则会只显示第一个get方法 

原文:https://blog.csdn.net/jin80506/article/details/77737470

 
 
参考文章:
http://www.cnblogs.com/oneapm/p/5390303.html
http://blog.csdn.net/yuchen_0515/article/details/51762958
 
 

免责声明:文章转载自《ASP.NET WEBAPI 使用Swagger生成API文档》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ant基础.Net面试题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

开发maven项目,war包部署tomcat访问无效解决方法

 添加红框部门,移除tomcat插件 <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> &...

pixijs shader 设置透明度的方法

pixijs shader 设置透明度的方法 precision mediump float; varying vec2 vTextureCoord; varying vec4 vColor; uniform sampler2D uSampler; uniform sampler2D noise; uniform float customUniform...

使用U盘安装mint

系统坏了,重新装的时候,硬盘甚至都没法格式化。。。所以,狠狠心买了块固态硬盘,123G,威刚。 想自己装Linux系统,这样用起来更方便一点,不用装虚拟机,然后再跑linux什么的。最后选了mint。 好嘛,问题来了,怎么装上去? 其实,找张空盘,把系统刻上去,这可能是最省力的方法了。但是,问题是另一台笔记本没有光驱。so。。。只能考虑u盘。 最初,是想尝...

Java泛型底层源码解析--ConcurrentHashMap(JDK1.6/JDK1.7/JDK1.8)

concurrentHashMap 1.8 与 1.7 比较请查看:从ConcurrentHashMap演进看 java多线程核心技术 1. Concurrent相关历史 JDK5中添加了新的concurrent包,相对同步容器而言,并发容器通过一些机制改进了并发性能。因为同步容器将所有对容器状态的访问都串行化了,这样保证了线程的安全性,所以这种方法的代价...

Python接口自动化(五) cookie绕过验证码登录

有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接)。获取不到也没关系,可以通过添加cookie的方式绕过验证码。 抓登录cookie 如博客园,未登录时,使用fiddler抓包查看cookie值。登录后,使用fiddler抓包查看cookie值。查看cookie变化,发现多个两组参数。 #c...

Facebook Api 使用(PHP版)

如果想通过Facebook登录到你的网站,Facebook站外API可以实现你想要的,如下介绍实际使用. (我目前没在网上找到中文的更详细的介绍了,呵呵.) (提示:Facebook不支持取得朋友的邮件地址,如果需求是这个,别在浪费功夫了) 注册Facebook Key http://www.facebook.com/developers/apps.php...