摘要:在工作中,我們的前端工作流一般開始于前后端協(xié)商好文檔之后,再針對(duì)這個(gè)文檔做模擬數(shù)據(jù),然后用做好的進(jìn)行開發(fā),后端開發(fā)完畢之后再改一下數(shù)據(jù)的切換到正式進(jìn)行聯(lián)調(diào)如下本文介紹的一個(gè)工具或者說方法,來將這個(gè)工作流優(yōu)化一下,也是我平時(shí)工作正在用的方法,
在工作中,我們的前端工作流一般開始于前后端協(xié)商好Api文檔之后,再針對(duì)這個(gè)Api文檔做mock模擬數(shù)據(jù),然后用做好的mock進(jìn)行開發(fā),后端開發(fā)完畢之后再改一下API數(shù)據(jù)的BaseURL切換到正式API進(jìn)行聯(lián)調(diào);如下
本文介紹的一個(gè)工具(或者說方法),來將這個(gè)工作流優(yōu)化一下,也是我平時(shí)工作正在用的方法,當(dāng)做自己的筆記,也跟大家一起分享一下~
這個(gè)方法的主要思路就是開發(fā)人員在某個(gè)api工具中按要求填好文檔,然后導(dǎo)出swagger.json配置文件,再把這個(gè)配置文件導(dǎo)入到easy-mock中,再用工具自動(dòng)生成前端api的js文件以供調(diào)用。
本文中所使用的工具:sosoApi、Easy-mock、Swagger、Easy-mock-api-template、axios
1. 使用Api管理平臺(tái)導(dǎo)出swagger.json文件一般我們前后端通過各種平臺(tái)或者工具來管理Api,比如免費(fèi)的可視化Api管理平臺(tái) sosoApi、Yapi等,一般來說這些工具都可以生成swagger.json的Api,我們可以用它來直接生成一個(gè)漂亮的可視化Api文檔,也可以用它來作為配置文件導(dǎo)入其他工具中,比如Easy-mock;
比如在sosoApi中就可以導(dǎo)出為swagger文檔(swagger.json):
我們先導(dǎo)出一個(gè)swagger.json備用;
2. 使用swagger.json導(dǎo)入easy-mockMock平臺(tái)我們可以使用Easy-mock,輕量又簡(jiǎn)潔,雖然沒有Api的分組功能,但平時(shí)應(yīng)付應(yīng)付不太大的應(yīng)用、個(gè)人應(yīng)用等場(chǎng)景足夠了;Easy-mock官網(wǎng)的服務(wù)被不少人直接拿到開發(fā)環(huán)境用,經(jīng)常被擠爆,這個(gè)情況可以用本地部署來解決這個(gè)問題,參考 windows本地安裝部署 Easy Mock 。
我們將Api管理平臺(tái)中導(dǎo)出的swagger.json文件在新建project的時(shí)候?qū)耄?/p>
這樣剛剛Api平臺(tái)中配置的Api就被同步到我們的Easy-mock配置中了,比如sosoApi的示例項(xiàng)目導(dǎo)出的結(jié)果就是:
這時(shí)我們就可以用它來進(jìn)行數(shù)據(jù)mock了,怎么樣,是不是很輕松~
easy-mock項(xiàng)目面板上面會(huì)有個(gè) Project ID,這個(gè)記下來后面要用;
3. 使用easy-mock-cli生成js格式Api有了easy-mock之后一般情況下我們要寫前端的api文件了,一般api工具用axios,這里提供一個(gè)封裝:
// utils/fetch.js import axios from "axios" const service = axios.create({ baseURL: "https://easy-mock.com/project/5bf6a23c92b5d9334494e884", timeout: 5000 }) // request攔截器 service.interceptors.request.use( config => {...}, err => {...}) // respone攔截器 service.interceptors.response.use( res => {...}, err => {...}) export default service
我們可以用easy-mock-cli來生成api,模板文件如果不想用原來的模板的話,可以使用我fork之后改寫的一個(gè)模板e(cuò)asy-mock-api-template,生成的Api文件是這樣的:
// api/index.js import fetch from "utils/fetch"; /* 活動(dòng)查詢 */ const activityQuery = ({ activityDate }) => fetch({ method: "get", url: "/activity/query", params: { activityDate } }); /** 活動(dòng)保存 */ const activitySave = () => fetch({ method: "post", url: "/activity/save" }); /** 活動(dòng)提交 */ const activitySubmit = ({ activityId, content }) => fetch({ method: "post", url: "/activity/submit", data: { activityId, content } }); export { activityQuery, // 活動(dòng)查詢 activitySave, // 活動(dòng)保存 activitySubmit // 活動(dòng)提交 };
然后在文件中就可以:
import * as Api from "api/index.js"; // 調(diào)用 Api.activitySubmit({ activityId: 2 }) .then(...)
簡(jiǎn)單介紹一下配置文件,更復(fù)雜的配置要參考原來的文檔;
// .easy-mock.js 配置文件 { host: "http://localhost:8080/", // easy-mock的源,沒有本地部署的話不用寫,本地部署則填本地服務(wù)地址 output: "../", // 生成 API 的基礎(chǔ)目錄 template: "../", // 指定模板,這里用本地寫的模板 projects: [ // 可以有多個(gè)模板來源 { "id": "你要?jiǎng)?chuàng)建的 Easy Mock 項(xiàng)目的 id", // 剛剛記下來的 Project ID "name": "api" // 生成的output目錄下的文件名 } ] }
然后
npm run create-api
就可以在根目錄下生成一個(gè)api/index.js文件了~
網(wǎng)上的帖子大多深淺不一,甚至有些前后矛盾,在下的文章都是學(xué)習(xí)過程中的總結(jié),如果發(fā)現(xiàn)錯(cuò)誤,歡迎留言指出~
參考:
用swagger.json自動(dòng)生成axios api訪問代碼 - 簡(jiǎn)書
Easy-mock-cli/README.md
推介閱讀:
windows本地安裝部署 Easy Mock - 掘金
PS:歡迎大家關(guān)注我的公眾號(hào)【前端下午茶】,一起加油吧~
另外可以加入「前端下午茶交流群」微信群,長(zhǎng)按識(shí)別下面二維碼即可加我好友,備注加群,我拉你入群~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/108818.html
摘要:其標(biāo)準(zhǔn)為前身是,提供強(qiáng)大的在線編輯功能,包括語法高亮錯(cuò)誤提示自動(dòng)完成實(shí)時(shí)預(yù)覽,并且支持用戶以格式撰寫導(dǎo)入導(dǎo)出轉(zhuǎn)換文檔。 團(tuán)隊(duì)內(nèi)部RestAPI開發(fā)采用設(shè)計(jì)驅(qū)動(dòng)開發(fā)的模式,即使用API設(shè)計(jì)文檔解耦前端和后端的開發(fā)過程,雙方只在聯(lián)調(diào)與測(cè)試時(shí)耦合。在實(shí)際開發(fā)和與前端合作的過程中,受限于眾多因素的影響,開發(fā)效率還有進(jìn)一步提高的空間。本文的目的是優(yōu)化工具鏈支持,減少一部分重復(fù)和枯燥的勞動(dòng)。 現(xiàn)狀...
摘要:是一個(gè)極度純凈的上傳插件,通過簡(jiǎn)單調(diào)整就可以融入到任何項(xiàng)目,支持多文件上傳上傳速率動(dòng)態(tài)控制真實(shí)進(jìn)度監(jiān)控分塊生成分塊上傳校驗(yàn)秒傳暫停取消等。 跨域?qū)W習(xí)筆記 前言: 當(dāng)一個(gè)資源,向與之所在服務(wù)器不同的域或端口請(qǐng)求另一個(gè)資源時(shí),這個(gè)HTTP請(qǐng)求,我們認(rèn)為是跨域的請(qǐng)求。出于安全考慮,瀏覽器會(huì)限制腳本發(fā)起的跨域HTTP請(qǐng)求。 那天后端讓我把token放到http請(qǐng)求頭字段里,說是為了和RN端統(tǒng)一...
摘要:前端每周清單第期與模式變遷與優(yōu)化界面生成作者王下邀月熊編輯徐川前端每周清單專注前端領(lǐng)域內(nèi)容,以對(duì)外文資料的搜集為主,幫助開發(fā)者了解一周前端熱點(diǎn)分為新聞熱點(diǎn)開發(fā)教程工程實(shí)踐深度閱讀開源項(xiàng)目巔峰人生等欄目。 showImg(https://segmentfault.com/img/remote/1460000013279448); 前端每周清單第 51 期: React Context A...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:如果你的運(yùn)行緩慢,你可以考慮是否能優(yōu)化請(qǐng)求,減少對(duì)的操作,盡量少的操,或者犧牲其它的來換取性能。在認(rèn)識(shí)描述這些核心元素的過程中,我們也會(huì)分享一些當(dāng)我們構(gòu)建的時(shí)候遵守的一些經(jīng)驗(yàn)規(guī)則,一個(gè)應(yīng)用應(yīng)該保持健壯和高性能來維持競(jìng)爭(zhēng)力。 一個(gè)開源的前端錯(cuò)誤收集工具 frontend-tracker,你值得收藏~ 蒲公英團(tuán)隊(duì)最近開發(fā)了一款前端錯(cuò)誤收集工具,名叫 frontend-tracker ,這款...
閱讀 2572·2023-04-25 20:05
閱讀 2895·2023-04-25 17:56
閱讀 2210·2021-10-14 09:49
閱讀 2696·2019-08-29 15:10
閱讀 2930·2019-08-29 12:25
閱讀 428·2019-08-28 18:23
閱讀 765·2019-08-26 13:26
閱讀 1381·2019-08-23 18:21