YApi 官網(wǎng)說明文檔-接口操作

為方便和前端, 節(jié)省溝通成本, 編寫接口文檔非常有比較

使用過swagger, 覺得入侵性太大. POST又感覺和項目結(jié)合的不太緊密. 所以一直在尋找新的接口閱讀/生成/測試工具. 下面介紹一下YApi.

如何創(chuàng)建接口?

把大象裝進冰箱分幾步觅廓?三步:把冰箱門打開十办,把大象裝進去廓块,關(guān)門,搞定~

新建接口分幾步中姜?也是三步:

搞定~

接口設(shè)置

進入項目頁宏粤,可以看到項目下的所有接口删壮,需要注意的是铐拐,YApi有 接口集合測試集合 兩個概念饰迹。

  • 接口集合 將接口進行分類,使接口結(jié)構(gòu)更清晰余舶,一個接口只能屬于一個集合,且不允許與其他接口重名锹淌。
  • 測試集合 為了方便我們測試接口匿值,測試集合 將若干接口組合在一起,在這里一個接口可以屬于不同集合赂摆。

接口配置

新建接口 后挟憔,點擊新添加的接口,右側(cè)可以看到接口的預覽信息烟号,點擊右側(cè)的 編輯 Tab項進入編輯面板绊谭。

在該面板中你可以看到接口的基本信息(接口名稱、分類汪拥、路徑)达传,除此以外,你還可以完善以下接口信息:

基本設(shè)置

  • 接口路徑:可以更改 HTTP 請求方式迫筑,并且支持 restful 動態(tài)路由宪赶,例如 /api/{id}/{name}, id和name是動態(tài)參數(shù)
  • 選擇分類:可以更改接口所在分類
  • 狀態(tài):用于標識接口是否開發(fā)完成。
  • Tag:用于標識接口tag信息(v1.3.23+),在接口list頁可以根據(jù)tag過濾接口
image

請求參數(shù)設(shè)置

  • Query參數(shù): 接口 url 的查詢字符串脯燃,點擊『添加Query參數(shù)』按鈕來添加參數(shù)搂妻,可以通過拖動來交換參數(shù)位置
  • 請求Body:http 請求 body 部分,如果http請求方式是 post, put 等請求方式時會有 req_body 部分辕棚。req_body_type 形式有4種欲主,分別是 form, json, file 和 raw 。
  • Headers: http 請求頭字段逝嚎,在 req_body 形式是 form 格式下會在 header 中自動生成 'Content-Type application/x-www-form-urlencoded'扁瓢,其他3種格式也會自動生成不同 header
image

返回數(shù)據(jù)設(shè)置

  • 返回數(shù)據(jù)分為 json & raw 兩種形式〔咕基于 mockjs (具體使用方法詳見Mock 介紹)和 json5涤妒,使用注釋方式寫參數(shù)說明。 為了方便數(shù)據(jù)編寫可以按F9來使用全局編輯
  • 選擇json-schema 則進入了 json 結(jié)構(gòu)可視化編輯器形式, 數(shù)據(jù)以 json schema 格式解析 快速入門 Json Schema 赚哗。
image

備注 & 其他

  • 接口描述: 用簡短的文字描述接口的作用她紫。
  • 郵件通知:開啟后將此次接口的改動以郵件的形式發(fā)送至項目組所有成員和關(guān)注該項目的成員(郵件默認情況下自動開啟)
  • 開放接口:默認為關(guān)閉狀態(tài)硅堆,用戶可以在 數(shù)據(jù)導出 時選擇只導出公開接口

接口運行

接口運行功能,是用來測試真實接口的贿讹,類似『Postman』的功能渐逃。

點擊運行 tab ,可進入到接口測試頁面,首先安裝『chrome crossRequest』擴展民褂,才可正常使用此功能茄菊。

點擊保存按鈕可把當前接口保存到測試集,方便下次調(diào)試赊堪。

安裝完插件記得刷新頁面

image

接口返回數(shù)據(jù)驗證

版本 v1.3.22 新增返回數(shù)據(jù)驗證功能面殖, 如果接口的返回數(shù)據(jù)格式為json schema 在接口運行時會對接口返回數(shù)據(jù)和定義數(shù)據(jù)格式進行校驗

Mock介紹

YApi的 Mock 功能可以根據(jù)用戶的輸入接口信息如協(xié)議、URL哭廉、接口名脊僚、請求頭、請求參數(shù)遵绰、返回數(shù)據(jù)(返回數(shù)據(jù))生成 Mock 接口辽幌,這些接口會自動生成模擬數(shù)據(jù),創(chuàng)建者可以自由構(gòu)造需要的數(shù)據(jù)椿访。

mock地址解析YApi平臺網(wǎng)址 + mock + 您的項目id + 接口實際請求path

假設(shè)你 YApi 的部署地址為:http://yapi.xxx.com 然后用這個地址作為示例

mockd 地址: http://yapi.xxx.com/mock/29/api/hackathon/login

注:項目 id 可以在項目設(shè)置里查看到

定義 mock 數(shù)據(jù)示例

項目 -> 接口編輯 -> 返回數(shù)據(jù)設(shè)置

返回數(shù)據(jù)設(shè)置有兩種方式乌企,最新版本默認是基于 json+注釋 的方式,另外一種是基于 json-schema 定義數(shù)據(jù)結(jié)構(gòu),請根據(jù)實際情況靈活選擇使用成玫。

方式1. mockjs

image

原理

基于 mockjs加酵,跟 Mockjs 區(qū)別是 yapi 基于 json + 注釋 定義 mock 數(shù)據(jù),無法使用 mockjs 原有的函數(shù)功能哭当。

  1. 正則表達式需要基于 rule 書寫虽画,示例如下:
{
  "name|regexp": "[a-z0-9_]+?",
  "type|regexp": "json|text|xml"
}
  1. 支持替換請求的 query, body 參數(shù)
{
  "name": "${query.name}", //請求的url是/path?name=xiaoming, 返回的name字段是xiaoming
  "type": "${body.type}",   //請求的requestBody type=1,返回的type字段是1

}
  1. 示例
/**
 * 這是一個接口返回數(shù)據(jù)示例
 */

{
    "errcode": 0,
    "errmsg": "@word",
    "data": {
        "id": "@id", //@id 隨機生成 id
        "name": "@name" //@name 隨機生成用戶名
    }
}

詳細使用文檔請查看:Mockjs 官網(wǎng)

方式2. json-schema

image

開啟 json-schema 功能后,根據(jù) json-schema 定義的數(shù)據(jù)結(jié)構(gòu)荣病,生成隨機數(shù)據(jù)码撰。

如何生成隨機的郵箱或 ip(該方法在v1.3.22之后不再適用)?

image

點擊高級設(shè)置个盆,選擇 format 選項脖岛,比如選擇 email 則該字段生成隨機郵箱字符串。

集成 mockjs

基本書寫方式為 mock 的數(shù)據(jù)占位符@xxx, 具體字段詳見Mockjs 官網(wǎng)

image

image

如果不是以@字符開頭的話或者匹配不到Mockjs中的占位符就會直接生成輸入的值

如何使用 Mock

1 在 js 代碼直接請求yapi提供的 mock 地址(不用擔心跨域問題)

在代碼直接請求 yapi 提供的 mock 地址颊亮,以 jQuery 為例:

let prefix = 'http://yapi.xxx.com/mock/2817'
$.post(prefix+'/baseapi/path', {username: 'xxx'}, function(res){
    console.log(res) //返回上圖預覽部分的數(shù)據(jù)
})

2 基于本地服務器反向代理

優(yōu)點:不用修改項目代碼

2.1 基于 nginx 反向代理

location /baseapi
{
proxy_pass   http://yapi.xxx.com/mock/2817/baseapi; #baseapi后面沒有"/"
}

2.1 基于 Charles 代理

點擊 Charles 工具欄下的 tools >> Rewrite Settings 填寫如下信息:

mock請求嚴格模式

版本 v1.3.22 新增 mock 接口請求字段參數(shù)驗證功能柴梆,具體使用方法如下:

  1. 打開 項目 -> 設(shè)置 開啟 mock 嚴格模式

  2. 針對 query, form 中設(shè)置的必須字段會進行必填校驗
    image
  3. 針對 req_body_type 是json schema 格式的數(shù)據(jù)進行校驗

來源

文章全文完全來自 YApi-教程.
https://hellosean1025.github.io/yapi/documents/index.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市终惑,隨后出現(xiàn)的幾起案子绍在,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偿渡,死亡現(xiàn)場離奇詭異臼寄,居然都是意外死亡,警方通過查閱死者的電腦和手機溜宽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門吉拳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人适揉,你說我怎么就攤上這事留攒。” “怎么了嫉嘀?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵炼邀,是天一觀的道長。 經(jīng)常有香客問我剪侮,道長拭宁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任票彪,我火速辦了婚禮,結(jié)果婚禮上不狮,老公的妹妹穿的比我還像新娘降铸。我一直安慰自己,他們只是感情好摇零,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布推掸。 她就那樣靜靜地躺著,像睡著了一般驻仅。 火紅的嫁衣襯著肌膚如雪谅畅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天噪服,我揣著相機與錄音毡泻,去河邊找鬼。 笑死粘优,一個胖子當著我的面吹牛仇味,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雹顺,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丹墨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嬉愧?” 一聲冷哼從身側(cè)響起贩挣,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后王财,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卵迂,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年搪搏,在試婚紗的時候發(fā)現(xiàn)自己被綠了狭握。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡疯溺,死狀恐怖论颅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情囱嫩,我是刑警寧澤恃疯,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站墨闲,受9級特大地震影響今妄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸳碧,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一盾鳞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瞻离,春花似錦腾仅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至肉迫,卻和暖如春验辞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背喊衫。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工跌造, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人族购。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓鼻听,卻偏偏與公主長得像,于是被迫代替她去往敵國和親联四。 傳聞我的和親對象是個殘疾皇子撑碴,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容