寫在前面:
開發(fā)的時(shí)候,前后端不論是否分離,接口多半是滯后于頁面開發(fā)的。所以建立一個(gè)REST風(fēng)格的API接口,給前端頁面提供虛擬的數(shù)據(jù),是非常有必要的。json server 作為模擬工具,因?yàn)樵O(shè)置簡單,容易上手。本文是做一個(gè)簡單的上手介紹,有需要的朋友可以做一下參考,喜歡的可以點(diǎn)波贊,或者關(guān)注一下,希望可以幫到大家。
json server 工具:
在后臺(tái)還沒給接口之前,使用JSON-Server搭建一臺(tái)JSON服務(wù)器,將接口要返回的數(shù)據(jù)放在json文件里面。然后請求這些數(shù)據(jù),這樣我們可以先做一些東西,等后臺(tái)接口好了之后直接替換就可以了,不必一直傻傻的等后端的接口。
安裝:
npm install json-server --save //json servernpm install axios --save //使用axios發(fā)送請求
json文件:
創(chuàng)建一個(gè)json文件,起名叫db.json,文件放置在跟index.html平級(jí)的目錄中,也可以放置在static文件夾中,db.json文件里面的內(nèi)容,是一個(gè)對象。
設(shè)置:
位置: build/dev-server.js
//json-server 假數(shù)據(jù)var jsonServer = require('json-server') //引入文件var apiServer = jsonServer.create(); //創(chuàng)建服務(wù)器var apiRouter = jsonServer.router('db.json') //引入json 文件 ,這里的地址就是你json文件的地址var middlewares = jsonServer.defaults(); //返回JSON服務(wù)器使用的中間件。apiServer.use(middlewares)apiServer.use('/json',apiRouter)apiServer.listen( port + 1,function(){ //json服務(wù)器端口:比如你使用8080,這里的json服務(wù)器就是8081端口 console.log('JSON Server is running') //json server成功運(yùn)行會(huì)在git bash里面打印出'JSON Server is running'})
如圖所示:
請求接口代理:
proxyTable: { '/api': { target: 'http://localhost:8081/', // 通過本地服務(wù)器將你的請求轉(zhuǎn)發(fā)到這個(gè)地址 changeOrigin: true, // 設(shè)置這個(gè)參數(shù)可以避免跨域 pathRewrite: { '/api': '/' } },},
如下圖所示:
npm run dev啟動(dòng)項(xiàng)目可以訪問到你的json文件:
現(xiàn)在服務(wù)器已經(jīng)成功啟動(dòng),在地址欄輸入 localhost:8081,就可以看到的json文件,加上相應(yīng)后綴即可訪問文件里面的數(shù)據(jù)。
jsonserver服務(wù)器:
jsonserver服務(wù)器
json數(shù)據(jù):
json數(shù)據(jù)
axios請求json數(shù)據(jù):
光看到這些數(shù)據(jù)可不行,我們還需要發(fā)起請求,請求到這些數(shù)據(jù),然后執(zhí)行各種各樣的騷操作。
main.js文件中:
import axios from 'axios';//引入文件Vue.prototype.$ajax = axios;//將axios掛載到Vue實(shí)例中的$ajax上面,在項(xiàng)目中的任何位置通過this.$ajax使用
在組件中的使用方式,比如:
this.$ajax({ url:'/api/articles',//api 代理到j(luò)son文件地址,后面的后綴是文件中的對象或者是數(shù)組 method:'get',//請求方式 //這里可以添加axios文檔中的各種配置 }).then(function (res) { console.log(res,'成功'); }).catch(function (err) { console.log(err,'錯(cuò)誤'); })//還可以像下面這么簡寫 this.$ajax.get('api/publishContent').then((res) => { console.log(res,'請求成功') },(err)=>{ console.log(err,'請求失敗'); });
JSON-Server只接受GET請求,GitHub上提到:
If you make POST, PUT, PATCH or DELETE requests, changes will be automatically and safely saved to db.json using lowdb.
文檔:
附上json server的github,和axios的中文文檔,大家可以進(jìn)去研究一下。
json server設(shè)置和使用起來還是蠻方便的,大家感興趣的話,可以跟著文章設(shè)置一波。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注