API 文檔類型是看云特有的一種文檔類型,可以快速定義和生成產品或項目的`API`文檔。 [ [點擊查看示例API文檔](http://www.hmoore.net/shuai/api_demo/67290) ]
## 創建API文檔
選擇創建API 文檔類型后,表單如下:

API相關設置包括設置**基礎URL**和**添加Header**(這一步可以先不填,以后直接在編輯模式下面選擇右上角的文檔設置進行更改)
點擊更多設置,可以看到更多的設置參數:

## 定義API文檔
創建的API文檔后,會做一些初始化內容,如圖所示:

我們來完成第一個API接口的文檔,定義分成幾個部分:
## 1 全局設置

如下:
~~~
{
"plugins": [
"api",
"highlight"
],
"pluginsConfig": {
"api": {
"url": "http://www.kancloud.com",
"headers": {
"key1":"value1"
},
"params":[
{
"default": "默認值",
"desc": "說明文字",
"name": "iid",
"required": true,
"type": "string"
}
],
"explore":true
}
}
}
~~~
> ### url
api提交的基礎url,如這里設置的是`http://www.kancloud.com`你api定義到URL地址是`/user` ,那么此條api實際提交的地址是`http://www.kancloud.com/user`
> ### headers(可選)
是一個數組,測試時作為http headers提交到服務器
> ### params(可選)
所有api都有都公共參數,是一個數組,每個數組元素有如下屬性:
`default`:默認值
`desc`:字段說明
`name`:字段名
`required`:是否必填
`type`:字段類型
>[success] ### explore
是否開啟在線調試功能,有些api可能需要內網環境,無法在線調試,則可關閉此項
>[warning]以上配置項可以分組配置
如下:
~~~
{
"plugins": [
"api",
"highlight"
],
"pluginsConfig": {
"api": {
"default":{
"url": "http://www.kancloud.com",
"headers": {
"key1":"value1"
},
"params":[
{
"default": "默認值",
"desc": "說明文字",
"name": "iid",
"required": true,
"type": "string"
}
],
"explore":true
},
"second":{
"url": "http://www.kancloud.com",
"headers": {
"key2":"value2"
},
"explore":true
}
}
}
}
~~~
## 2 API定義
API的標簽格式為`~~~[api]`
如:
```
~~~[api]
get:/url
*id=默認值#說明文字
name#說明文字
<<<
success
{
"errNum": 0,
"retMsg": "success",
"retData": {}
}
<<<
error
這里填寫錯誤的返回碼
以此類推,每個狀態使用 <<< 分割,
第一行添加狀態名稱
~~~
```
在開始的`[api]`后面可以跟上此條api使用的配置分組名稱,不寫則為默認的`default`分組,或者上面配置沒有分組的時候也可以不填
比如:
```
~~~[api:second]
get:/url
*id=默認值#說明文字
name#說明文字
<<<
success
{
"errNum": 0,
"retMsg": "success",
"retData": {}
}
<<<
error
這里填寫錯誤的返回碼
以此類推,每個狀態使用 <<< 分割,
第一行添加狀態名稱
~~~
```
## 3 API接口方法請求類型和URL地址
定義格式: `[請求類型:]URL地址`
例如:
~~~
get:/api/blog // 獲取博客
post:/api/blog // 發布博客
put:/api/blog // 更新博客
delete:/api/blog // 刪除博客
~~~
> 如果沒有添加請求類型的話,默認就是get請求。
## 4 API接口方法的參數列表
接口請求類型和URL地址后緊隨著就是參數列表定義,每一行定義一個接口參數,定義格式:
~~~
*[參數類型:]參數名稱=默認值#參數說明
~~~
例如:
~~~
*id=0#用戶ID
name#用戶昵稱
~~~
>[info] 參數名稱前面如果帶*號表示該參數為必須。
默認的參數類型是string,如果需要指定類型,可以使用:
~~~
*int:id=0#用戶ID
~~~
> 參數類型僅僅作為傳值參考,所有請求的參數都是首先作為string傳入后自行轉換處理。
## 5 返回結果定義
返回結果可以根據不同的狀態需要定義,返回結果以 `<<<`標識開頭,例如:
~~~
<<<
success
{
"errNum": 0,
"retMsg": "success",
"retData": {
"city": "洛陽",
"time": "2015-09-09T16:00:00Z",
"aqi": 77,
"level": "良",
"core": "顆粒物(PM10)"
}
}
<<<
error
{
"errNum": 0,
"retMsg": "success",
"retData": []
}
~~~
### 用戶認證
在插件配置里添加`security`參數,比如
~~~
{
"plugins": [
"api",
"highlight"
],
"pluginsConfig": {
"api": {
"url": "http://www.kancloud.com",
"headers": {
"key1":"value1"
},
"params":[
{
"default": "默認值",
"desc": "說明文字",
"name": "iid",
"required": true,
"type": "string"
}
],
"explore":true,
"security":{
"type":"apiKey", // 必填 目前支持 apiKey和oauth2 兩種,apiKey表示添加一個額外的參數用于認證,oauth2表示使用Bearer Token的方式認證
"in":"query", // type為apiKey時有效,可為query和header兩種,query表示參數添加到請求的url里,header表示參數添加到header里
"name":"token",// type為apiKey時有效,用于認證權限的參數名
"default":"bbb"// 默認值
}
}
}
}
~~~
如果某條api不需要身份認證 可以使用分組配置或者在那條url前面添加`!`
比如
```
~~~[api]
!get:/url
*id=默認值#說明文字
name#說明文字
<<<
success
{
"errNum": 0,
"retMsg": "success",
"retData": {}
}
~~~
```
- 關于看云
- 遷移通知
- 注冊登錄
- 文檔寫作
- 創建文檔
- 封面圖片
- 文檔操作
- 目錄操作
- 編輯器
- 可視化編輯
- 寫作規范
- 文檔設置
- 私有轉換
- 刪除文檔
- 文檔派生
- 發布文檔
- 文檔還原
- 離線寫作
- 分享文檔
- API 文檔
- 個性化
- 插件擴展
- 樣式定義
- 綁定域名
- 導航定義
- 私有文檔
- 導入文檔
- 從GIT倉庫構建
- 導出文檔
- 文檔轉讓
- 文檔定價
- 廣場推薦
- 空間升級
- 文檔協作
- 添加成員
- 創建團隊
- 創建企業
- 釘釘接入
- 企業微信接入
- 快捷鍵
- 常見問題
- 為啥文檔發布以后仍然不能正常訪問
- 編輯保存了為什么閱讀看不到
- 如何給文檔增加代碼高亮顯示
- 如何設置字體顏色
- 如何生成復雜(跨行跨列)的表格
- 為啥章節導航無法正常顯示
- 為什么創建文檔總是提示過于頻繁
- kindle設置
- 發布后圖片不顯示
- 為什么目錄變成空的了
- 如何調整目錄排序
- 為什么右側的預覽延遲嚴重
- 更換了封面圖片后為啥沒有生效
- 為什么我的付費文檔上架審核拒絕了
- 如何去除文檔中的看云版權標識
- 從Git導入的文檔為什么沒法閱讀
- 看云和石墨及語雀的主要區別是什么?
- 在微信購買的文檔 如何在網站閱讀
- 看云的內容文字太小怎么辦
- 為什么分享的公開文檔閱讀的時候提示需要登錄
- 為什么文檔無法同步?
- 為什么購買的文檔看不到了
- 文檔超出大小應該如何擴容
- 如何給文檔添加頂部導航
- 為什么我刪除了文檔里面的圖片空間還是沒減少
- 文檔發布為什么那么慢
- 導出PDF失敗
- 更新日志
- 用戶條款
- 推薦獎勵計劃
- 推廣素材