api在線文檔使用教程(怎么寫api文檔)
本文目錄一覽:
如何優雅的“編寫”api接口文檔
一些剛開始寫接口文檔api在線文檔使用教程的服務端同學,很容易按著代碼的思路去編寫接口文檔,這讓客戶端同學或者是服務對接方技術人員經常吐槽,看不懂接口文檔。這篇文章提供一個常規接口文檔的編寫方法,給大家參考。
推薦使用的是docway?寫接口文檔,方便保存和共享,支持導出PDF MARKDOWN,支持團隊項目管理。
一、請求參數
1. 請求方法
GET
用于獲取數據
POST
用于更新數據,可與PUT互換,語義上PUT支持冪等
PUT
用于新增數據,可與POST互換,語義上PUT支持冪等
DELETE
用于刪除數據
其api在線文檔使用教程他
其api在線文檔使用教程他的請求方法在一般的接口中很少使用。如api在線文檔使用教程:PATCH HEAD OPTIONS
2. URL
url表示api在線文檔使用教程了接口的請求路徑。路徑中可以包含參數,稱為地址參數,如**/user/{id}**,其中id作為一個參數。
3. HTTP Header
HTTP Header用于此次請求的基礎信息,在接口文檔中以K-V方式展示,其中Content-Type則是一個非常必要的header,它描述的請求體的數據類型。
常用的content-type:
application/x-www-form-urlencoded
請求參數使用“”符號連接。
application/json
內容為json格式
application/xml
內容為xml格式
multipart/form-data
內容為多個數據組成,有分隔符隔開
4. HTTP Body
描述http body,依賴于body中具體的數據類型。如果body中的數據是對象類型。則需要描述對象中字段的名稱、類型、長度、不能為空、默認值、說明。以表格的方式來表達最好。
示例:
二、響應參數
1. 響應 HTTP Body
響應body同請求body一樣,需要描述請清除數據的類型。
另外,如果服務會根據不同的http status code 返回不同的數據結構, 也需要針對不同的http status code對內容進行描述。
三、接口說明
說明接口的應用場景,特別的注意點,比如,接口是否冪等、處理是同步方式還是異步方式等。
四、示例
上個示例(重點都用紅筆圈出來,記牢了):
五、接口工具
推薦使用的是http://docway.net(以前叫小幺雞) 寫接口文檔,方便保存和共享,支持導出PDF MARKDOWN,支持團隊項目管理。
如何使 WebAPI 自動生成漂亮又實用在線API文檔
1.1 SwaggerUISwaggerUI 是一個簡單的Restful API 測試和文檔工具。簡單、漂亮、易用(官方demo)。通過讀取JSON 配置顯示API. 項目本身僅僅也只依賴一些 html,css.js靜態文件. api在線文檔使用教程你可以幾乎放在任何Web容器上使用。
1.2 Swashbuckle
Swashbuckle 是.NET類庫,可以將WebAPI所有開放的控制器方法生成對應SwaggerUI的JSON配置。再通過SwaggerUI 顯示出來。類庫中已經包含SwaggerUI 。所以不需要額外安裝。
2.快速開始
創建項目 OnlineAPI來封裝百度音樂服務(示例下載) api在線文檔使用教程,通過API可以搜索、獲取音樂的信息和播放連接。
我盡量刪除一些我們demo中不會用到的一些文件,使其看上去比較簡潔。
WebAPI 安裝 Swashbuckle
Install-Package Swashbuckle
代碼注釋生成文檔說明。
Swashbuckle 是通過生成的XML文件來讀取注釋的,生成 SwaggerUI,JSON 配置中的說明的。
安裝時會在項目目錄 App_Start 文件夾下生成一個 SwaggerConfig.cs 配置文件,用于配置 SwaggerUI 相關展示行為的。如圖:
將配置文件大概99行注釋去掉并修改為
c.IncludeXmlComments(GetXmlCommentsPath(thisAssembly.GetName().Name));
并在當前類中添加一個方法
/// <summary
/// </summary
/// <param name="name"</param
/// <returns</returns
protected static string GetXmlCommentsPath(string name)
{
return string.Format(@"{0}\bin\{1}.XML", AppDomain.CurrentDomain.BaseDirectory, name);
}
緊接著你在此Web項目屬性生成選卡中勾選 “XML 文檔文件”,編譯過程中生成類庫的注釋文件
添加百度音樂 3個API
訪問 lt;youhost/swagger/ui/index,最終顯示效果
我們通過API 測試API 是否成功運行
3.添加自定義HTTP Header
在開發移動端 API時常常需要驗證權限,驗證參數放在Http請求頭中是再好不過api在線文檔使用教程了。WebAPI配合過濾器驗證權限即可
首先我們需要創建一個 IOperationFilter 接口的類。IOperationFilter
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.Description;
using System.Web.Http.Filters;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
public class HttpHeaderFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry
schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null) operation.parameters = new
List<Parameter();
var filterPipeline =
apiDescription.ActionDescriptor.GetFilterPipeline();
//判斷是否添加權限過濾器
var isAuthorized = filterPipeline.Select(filterInfo =
filterInfo.Instance).Any(filter = filter is IAuthorizationFilter);
//判斷是否允許匿名方法
var allowAnonymous =
apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute().Any();
if (isAuthorized !allowAnonymous)
{
operation.parameters.Add(new Parameter
{
name = "access-key",
@in = "header",
description = "用戶訪問Key",
required = false,
type = "string"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法類添加一行注冊代碼
c.OperationFilter<HttpHeaderFilter();
添加Web權限過濾器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Http.Controllers;
using Newtonsoft.Json;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class AccessKeyAttribute : AuthorizeAttribute
{
/// <summary
/// 權限驗證
/// </summary
/// <param name="actionContext"</param
/// <returns</returns
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var request = actionContext.Request;
if (request.Headers.Contains("access-key"))
{
var accessKey = request.Headers.GetValues("access-key").SingleOrDefault();
//TODO 驗證Key
return accessKey == "123456789";
}
return false;
}
/// <summary
/// 處理未授權的請求
/// </summary
/// <param name="actionContext"</param
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
var content = JsonConvert.SerializeObject(new {State = HttpStatusCode.Unauthorized});
actionContext.Response = new HttpResponseMessage
{
Content = new StringContent(content, Encoding.UTF8, "application/json"),
StatusCode = HttpStatusCode.Unauthorized
};
}
}
}
在你想要的ApiController 或者是 Action 添加過濾器
[AccessKey]
最終顯示效果
4.顯示上傳文件參數
SwaggerUI 有上傳文件的功能和添加自定義HTTP Header 做法類似,只是我們通過特殊的設置來標示API具有上傳文件的功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Description;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class UploadFilter : IOperationFilter
{
/// <summary
/// 文件上傳
/// </summary
/// <param name="operation"</param
/// <param name="schemaRegistry"</param
/// <param name="apiDescription"</param
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (!string.IsNullOrWhiteSpace(operation.summary) operation.summary.Contains("upload"))
{
operation.consumes.Add("application/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
@in = "formData",
required = true,
type = "file"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法類添加一行注冊代碼
c.OperationFilter<UploadFilter();
API 文檔展示效果
如何使用jdk1.6的API幫助文檔
1:打開幫助文檔2:點擊顯示api在線文檔使用教程,找到索引,看到輸入框
3:知道api在線文檔使用教程你要找誰?以Scanner舉例
4:在輸入框里面輸入Scanner,然后回車
5:看包
java.lang包下的類不需要導入,其api在線文檔使用教程他的全部需要導入。
要導入:
java.util.Scanner
6:再簡單的看看類的解釋和說明,別忘了看看該類的版本
7:看類的結構
成員變量 字段摘要
構造方法 構造方法摘要
成員方法 方法摘要
8:學習構造方法
A:有構造方法 就創建對象
B:沒有構造方法 成員可能都是靜態的
9:看成員方法
A:左邊
是否靜態:如果靜態,可以通過類名調用
返回值類型:人家返回什么,你就用什么接收。
B:右邊
看方法名:方法名稱不要寫錯
參數列表:人家要什么,你就給什么api在線文檔使用教程;人家要幾個,你就給幾個
java api怎么使用方法?
這個沒什么使用方法,就是首先你得去找包,在從這個包中找類(接口),然后看這個類得方法已經屬性,從而得到你想要的類得屬性以及方法,自己多差就可以了,只要勤于動什么api都不在話下的!你要的QQ可以在HI上叫我我給你
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。