推薦一個接口文檔自動生成工具Swagger

1. 新建一個webapi項目

clipboard.png

2. 項目打開以後,選擇 引用,右鍵,管理NuGet程序包

clipboard.png

瀏覽,搜索swagger,選擇第一個swashbuckle,安裝

clipboard.png

3. 安裝好以後,右鍵項目,選擇屬性,生成,在下面的輸出那裏勾選:XML文檔文件,若是沒有自動填充好路徑,須要本身填寫一下,文件名能夠本身取。

clipboard.png
clipboard.png

4. 打開App_Start文件夾下的SwaggerConfig.cs文件,新增一個以下方法:

private static string GetXmlCommentsPath()
{
    return System.String.Format(@"{0}\bin\WebApiDemo.xml", System.AppDomain.CurrentDomain.BaseDirectory);
}

5. 其中WebApiDemo.xml這個文件名要和本身在前一步填寫的文件名一致

clipboard.png

6. 搜索GetXmlCommentsPath,下面能搜到已經註釋了,本身把註釋放開,要是沒搜到,就本身手動寫一下c.IncludeXmlComments(GetXmlCommentsPath());注意要寫在register方法裏面

clipboard.png

7. 打開valuescontroller,本身寫一些註釋

clipboard.png

8. 運行項目,在根路徑後面直接加swagger,就會自動跳轉到文檔,如:http://localhost:8970/swagger,能看到咱們寫的一些註釋

clipboard.png
clipboard.png

9. 在實際應用中,徹底使用webapi的restful風格的api設計是比較少見的,請求方式通常也只使用get請求和post請求,因此咱們作一些修改,使用的是相似restful風格的api設計,修改一下webapi的路由配置

clipboard.png

10. 寫相似下面的一個testcontroller,測試get請求和post請求

/// <summary>
    /// 測試的controller
    /// </summary>
    public class TestController : ApiController
    {
        
        /// <summary>
        /// get列表
        /// </summary>
        /// <returns></returns>
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        /// <summary>
        /// get請求
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public string Get(int id)
        {
            return "value";
        }

        /// <summary>
        /// post請求
        /// </summary>
        /// <param name="token"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public HttpResponseMessage Post(string token, [FromBody]UserModel model)
        {
            CookieHelper.SetUserCookie(model);
            string strResult = "{\"UserName\": \"" + model.UserName + "\", \"Pwd\": \"" + model.Pwd + "\"}";
            return new HttpResponseMessage(System.Net.HttpStatusCode.OK)
            {
                Content = new StringContent(strResult, Encoding.UTF8, "text/json")
            };
        }
    }

get請求
clipboard.png
post請求
當請求的content-type是application/json的時候,請求的參數是json字符串,後臺能夠正常接收參數
clipboard.png
當請求的content-type是application/x-www-form-urlencoded的時候,請求的參數是以下的形式,後臺就能夠正常接收參數
clipboard.pngweb

相關文章
相關標籤/搜索