這一篇我們主要介紹如何做API幫助文檔,給API的調用人員介紹各個 API的功能, 輸入參數,輸出參數, 以及在線測試 API功能(這個也是方便我們自己開發調試)
我們先來看看我們的API最終幫助文檔及在線測試最終達到的效果:
概要圖
?
GET API
添加產品API:
刪除產品 API
接下來我們動手來實現上面的功能
給所有API添加注釋信息
代碼如下
[RoutePrefix("api/products")]public class ProductController : ApiController{/// <summary>/// 產品分頁數據獲取/// </summary>/// <returns></returns>[HttpGet, Route("product/getList")]public Page<Product> GetProductList(){throw new NotImplementedException();}/// <summary>/// 獲取單個產品/// </summary>/// <param name="productId"></param>/// <returns></returns>[HttpGet, Route("product/get")]public Product GetProduct(Guid productId){throw new NotImplementedException();}/// <summary>/// 添加產品/// </summary>/// <param name="product"></param>/// <returns></returns>[HttpPost, Route("product/add")]public Guid AddProduct(Product product){throw new NotImplementedException();}/// <summary>/// 更新產品/// </summary>/// <param name="productId"></param>/// <param name="product"></param>[HttpPost, Route("product/update")]public void UpdateProduct(Guid productId, Product product){throw new NotImplementedException();}/// <summary>/// 刪除產品/// </summary>/// <param name="productId"></param>[HttpDelete, Route("product/delete")]public void DeleteProduct(Guid productId){throw new NotImplementedException();}}
我們上圖中顯示的api幫助信息,全部從我們的注釋信息中提取,所以這里的API注釋信息必不可少.
?
添加Swagger.Net組件(自定義修改版本, 官方已多年不更新,只能自己更新了)
在項目中加入Swagger.Net組件, 由于這個已經在官方的版本上做了很多的更新,大家實踐的過程中,直接從項目代碼中復制(必要的時候可以做成Nuget組件發布后大家使用)
添加Swagger.NET步驟:
1. 在項目中引入Swagger.Net Project.
2. 在Web API項目的App_Start下面添加SwaggerNet.cs
代碼如下
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(SwaggerNet), "PreStart")] [assembly: WebActivatorEx.PostApplicationStartMethod(typeof(SwaggerNet), "PostStart")] namespace Niusys.WebAPI.App_Start {public static class SwaggerNet{public static void PreStart(){RouteTable.Routes.MapHttpRoute(name: "SwaggerApi",routeTemplate: "api/docs/{controller}/{action}",defaults: new { swagger = true });}public static void PostStart(){var config = GlobalConfiguration.Configuration;config.Filters.Add(new SwaggerActionFilter());}} }
其主要是注冊api文檔的請求路由及攔截文檔的請求.
3. 復制WebAPI項目中的SwaggerUI文件夾, 這里是幫助文檔的頁面處理文件.
4. WebAPI項目啟用XML文檔生成
?
這個時候就可以啟動項目,在URL中輸入swaggerui(http://localhost:14527/swaggerui/)目錄,就可以訪問我們的API幫助文檔系統及在線測試了。
?
總結:
這里幫助文檔的原理是通過我們在代碼中的XML注釋來實現的,其原理也是在請求到api/doc的時候,這個時候去取對應controler/action的xml幫助文檔,讓后做顯示.
其測試是完全用的其內部瘋轉的jQuery Ajax來做的測試, 跟界面做了高度集成, 完全滿足我們項目的需求。
文章轉載出自:http://www.cnblogs.com/Flyear/p/4870373.html?