转帖:http://kevintsengtw.blogspot.hk/2015/12/aspnet-web-api-swagger.html

Swagger 是一套 API 互動文件產生器,使用 HTML 與 Javascript 所編寫的,與之前所介紹的 ASP.NET Web API Help Page 不同的是,Swagger 是一套 Open Source Software,支援了現在許多的 REST API,之所以會說這是一個互動的文件,除了顯示 API 輸出入規格外,也能夠讓使用者即時的在 Swagger UI 介面上進行操作,立刻就能看到執行結果。

這一篇將會簡單說明如何在一個 ASP.NET Web API 專案裡加入 Swagger 功能。


Swagger

http://swagger.io/

如果還不太曉得 Swagger 有什麼功能以及可以做什麼事情,我建議可以先到官網的 Live Demo 網站看看,看一看、點一點、操作幾個功能,應該就可以知道了,

http://petstore.swagger.io/

在 ASP.NET Web API 專案裡安裝使用

那麼在 ASP.NET Web API 專案裡要怎麼使用呢?

其實可以不用那麼辛苦的從頭安裝 Swagger,已經有人開發好 NuGet 套件,只要從 NuGet 安裝到 ASP.NET Web API 專案裡,然後稍做修改就可以了,基本的安裝使用並不會太複雜,只要跟著以下的步驟作就可以了。

範例沿用前一篇「ASP.NET Web Api - Help Page」文章裡的範例,在專案裡透過 NuGet 安裝以下兩個 Packages,分別是:SwashbuckleSwashbuckle.Core

裝了 Swashbuckle 就會把 Swashbuckle.Core 一併安裝進來,

安裝好 Swashbuckle 與 Swashbuckle.Core 之後,要檢查看看下面的檔案是不是有建立,

App_Start/SwaggerConfig.cs

一定要做的就是別忘了 Controller 與 Action 方法要加上 Summary

另外千萬別忘了在專案屬性裡要勾選建置時輸出「XML 文件檔案」

再來最重要的就是修改 SwaggerConfig.cs 的內容,在程式碼的第 99 行,將這一行給反註解,

不過把這一行給反註解之後卻會出現錯誤,

這是因為還沒有實作 GetXmlCommentsPath() 方法,這個方法是要提供 XML Document 檔案的路徑,這麼一來 Swagger 才能夠正確的顯示 Controller 與 Action 方法的相關資訊,

萬事具備之後就可以執行網站了,要查看 API 服務的 Swagger 文件頁面,在網址根目錄後面加上 Swagger 就可看到,例如:http://localhost:60900/Swagger

線上執行後顯示回傳結果


這一篇只是做簡單的介紹,如果你有興趣可以在進階研究 Swagger,但因為我們是開發 ASP.NET Web Api 並且是使用 Swagger for Web API - Swashbuckle,所以建議各位要進階研究的對象應該是「Swashbuckle」,其實有很多很進階的修改與設定可以玩的。

Postman 與 Swagger 的差異

  • Postman 適合開發人員的統整管理,並且可以直接匯出 C# (RestSharp) 的程式,並且直接放在程式裡使用
  • Swagger 適合即時開發的使用,甚至是提供給非開發人員測試使用
  • 建議兩種同時使用,開發人員在開發時的測試可以使用 Swagger 馬上做測試,完成開發後可以到 Postman 之後去對系統做測試

參考連結

http://swagger.io/

http://petstore.swagger.io/

https://github.com/domaindrivendev/Swashbuckle

KingKong Bruce記事: ASP.NET Web API 文件產生器(2) - Swagger

ASP.NET Web API 文件產生器 - 使用 Swagger的更多相关文章

  1. asp.net web api 文件上传

    1正确的做法 public class AvaterController : BaseApiController { [HttpPost] public async Task<IHttpActi ...

  2. Asp.net Web Api添加异常筛选器

    一.定义一个异常筛选器 using System;using System.Collections.Generic;using System.Linq;using System.Web;using S ...

  3. Asp.Net Web API 2第十二课——Media Formatters媒体格式化器

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本教程演示如何在ASP.N ...

  4. 【ASP.NET Web API教程】6.1 媒体格式化器

    http://www.cnblogs.com/r01cn/archive/2013/05/17/3083400.html 6.1 Media Formatters6.1 媒体格式化器 本文引自:htt ...

  5. Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转

    一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了Byt ...

  6. 【ASP.NET Web API教程】5.3 发送HTML表单数据:文件上传与多部分MIME

    原文:[ASP.NET Web API教程]5.3 发送HTML表单数据:文件上传与多部分MIME 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面 ...

  7. ASP.NET Web API 安全筛选器

    原文:https://msdn.microsoft.com/zh-cn/magazine/dn781361.aspx 身份验证和授权是应用程序安全的基础.身份验证通过验证提供的凭据来确定用户身份,而授 ...

  8. 既生瑜何生亮?ASP.NET MVC VS ASP.NET Web API

    Asp.net MVC 与 Asp.net Web API 区别 在我们开发一些web应用时,我们一样可以在MVC Framework 中使用JsonResult 来返回JSON数据,同样也可以处理一 ...

  9. ASP.NET Web API - ASP.NET MVC 4 系列

           Web API 项目是 Windows 通信接口(Windows Communication Foundation,WCF)团队及其用户激情下的产物,他们想与 HTTP 深度整合.WCF ...

随机推荐

  1. Long Long Message

    poj2774:http://poj.org/problem?id=2774 题意:求两个串的最长公共子串. 题解:求出后缀数组,然后求height数组,找出最大的值,并且这两个子串在不同的原串中即可 ...

  2. Feel Good

    poj2796:http://poj.org/problem?id=2796 题意:给出一个长度为n(n<100000)的序列,求出一个子序列,使得这个序列中的最小值乘以这个序列的和的值最大. ...

  3. Tomcat禁止显示目录和文件列表

    Tomcat禁止显示目录和文件列表 打开   tomcat的安装目录/conf/web.xml 文件 <servlet> <servlet-name>default</s ...

  4. HDU 5920 Ugly Problem 【模拟】 (2016中国大学生程序设计竞赛(长春))

    Ugly Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  5. [cocos2dx 3.0 + iap]中文文档(转)

    一.In App Purchase概览Store Kit代表App和App Store之间进行通信.程序将从App Store接收那些你想要提供的产品的信息,并将它们显示出来供用户购买.当用户需要购买 ...

  6. [经典] Best Time to Buy and Sell Stock

    这一系列求最优值的问题变种挺多 1. Say you have an array for which the ith element is the price of a given stock on ...

  7. 《A First Course in Probability》-chaper5-连续型随机变量-随机变量函数的期望

    在关于离散型随机变量函数的期望的讨论中,我们很容易就得到了如下的等式: 那么推广到连续型随机变量,是否也存在类似的规律呢? 即对于连续型随机变量函数的期望,有: 这里给出一个局部的证明过程,完整的证明 ...

  8. 阿里云如何添加多个网站 for Linux(绑定域名)

    我们可以通过.htaccess文件来达到一个空间帮顶多个域名的效果,即域名1访问空间上webroot下的目录1(即二级目录),域名2访问空间上webroot下的目录2,等等.二级目录名为fuli,需要 ...

  9. 在LINUX终端和VIM下复制粘贴

    http://www.tinylab.org/linux-terminal-and-paste-copy-under-vim/ 在GUI界面下,我们可以很自由的复制粘贴.但是在字符界面下,我们不得不用 ...

  10. 分布式系统里session同步的那些事儿

    几周前,有个盆友问老王,说现在有多台服务器,怎么样来解决这些服务器间的session同步问题?老王一下就来精神了,因为在n年以前,老王还在学校和几个同学一起所谓创业的时候,也遇到了类似的问题.当时查了 ...