EOLINKER 请求mock 数据

本文介绍如何使用EOLINKER平台创建和测试mock API,解决easymock请求不稳定的问题,提供了一个实际的mock API示例。

由于  easy mock的网站请求时不时会崩掉(=_=不知道是不是官方限制了请求次数),总之使用EOLINKER 请求mock数据是很快速的,就是初始创建比较麻烦,现在开始教程。

EOLINKER 官网

首先新建一个API项目

  

进入项目选择新建API 

新建API完成

 

在刚才的API项目中 新建mock API

 供大家尝试调用

https://mockapi.eolinker.com/1sIb6iW4bc1898c54f99db89a26f7701c6b09f503a8b20e/api/reward/detail?page=1&count=8

 

可在平台内测试这个接口

 注意测试时候也要加上query的值,否则回报错

注意

 

 

END

 

 

 

 

 

 

 

 

<think>在Vue项目中配置请求Mock数据,通常有两种主流方式:1.使用本地Mock服务器(如使用express、json-server等)2.在前端拦截HTTP请求(如使用Mock.js、axios-mock-adapter等)这里我将介绍两种常用方法,并给出详细步骤和代码示例。###方法一:使用Mock.js拦截请求(简单,适合前端独立模拟)Mock.js是一个前端模拟数据生成库,可以拦截Ajax请求并返回模拟数据。####步骤:1.安装Mock.js```bashnpminstallmockjs--save-dev```2.创建Mock文件(例如`src/mock/index.js`)```javascriptimportMockfrom'mockjs'//模拟一个GET请求Mock.mock('/api/user','get',{'list|1-10':[{'id|+1':1,'name':'@cname','email':'@email'}]})//模拟一个POST请求Mock.mock('/api/login','post',(options)=>{const{username,password}=JSON.parse(options.body)if(username==='admin'&&password==='123456'){returnMock.mock({code:200,message:'登录成功',token:'@guid'})}else{returnMock.mock({code:401,message:'用户名或密码错误'})}})```3.在入口文件(如`src/main.js`)中引入Mock```javascriptimport'@/mock'//引入mock文件```4.在组件中使用axios发送请求(与真实请求写法一致)```javascriptimportaxiosfrom'axios'//获取用户列表axios.get('/api/user').then(res=>{console.log(res.data)})//登录请求axios.post('/api/login',{username:'admin',password:'123456'}).then(res=>{console.log(res.data)})```###方法二:使用json-server搭建MockRESTAPI(更接近真实后端)json-server可以快速搭建一个RESTAPI服务器,使用一个json文件作为数据库。####步骤:1.安装json-server```bashnpminstall-gjson-server#或作为项目开发依赖npminstalljson-server--save-dev```2.创建db.json文件(项目根目录)```json{"posts":[{"id":1,"title":"json-server","author":"typicode"}],"comments":[{"id":1,"body":"somecomment","postId":1}]}```3.启动json-server(可添加到package.json脚本)```bashjson-server--watchdb.json--port3004```4.在vue.config.js中配置代理(避免跨域)```javascriptmodule.exports={devServer:{proxy:{'/api':{target:'http://localhost:3004',//json-server运行的地址changeOrigin:true,pathRewrite:{'^/api':''}}}}}```5.在组件中请求数据```javascriptaxios.get('/api/posts').then(res=>{console.log(res.data)})```###方法三:使用Vite的Mock插件(如果使用Vite)如果你使用Vite构建项目,可以使用`vite-plugin-mock`。1.安装依赖```bashnpminstallvite-plugin-mockmockjs--save-dev```2.在vite.config.js中配置```javascriptimport{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'import{viteMockServe}from'vite-plugin-mock'exportdefaultdefineConfig({plugins:[vue(),viteMockServe({mockPath:'mock',//mock文件存放目录localEnabled:true,//开发环境启用})]})```3.在项目根目录创建mock文件夹,并创建test.ts```typescript//mock/test.tsimport{MockMethod}from'vite-plugin-mock'exportdefault[{url:'/api/get',method:'get',response:()=>{return{code:0,data:{name:'vite-mock',},}},},]asMockMethod[]```4.在组件中请求```javascriptaxios.get('/api/get').then(res=>{console.log(res.data)})```###总结-**Mock.js**:适合简单场景,直接拦截请求,无需启动额外服务。-**json-server**:适合需要完整RESTAPI的场景,更接近真实后端。-**vite-plugin-mock**:Vite项目专用,开发体验好。根据项目需求选择合适的方式。---§§相关问题§§:1.如何在Vue项目中同时使用Mock.js和真实接口(根据环境切换)?2.使用Mock.js时如何模拟延迟响应?3.如何让json-server支持分页和过滤?4.在Vite项目中,如何只在开发环境启用Mock,生产环境禁用?</think>### Vue 中配置 Mock 数据的完整方案 在 Vue 项目中配置 Mock 数据主要有以下几种方法,我会提供最常用的 3 种方案,并详细解释每种方案的实现: --- #### 方案 1:使用 Mock.js 拦截请求(最常用) ```bash # 安装依赖 npm install mockjs --save-dev npm install axios --save ``` 1. 创建 mock 文件夹和文件 ```javascript // src/mock/index.js import Mock from 'mockjs' // 模拟用户数据 Mock.mock('/api/user', 'get', { 'list|5-10': [{ 'id|+1': 1, 'name': '@cname', 'age|18-60': 1, 'email': '@email' }] }) // 模拟登录接口 Mock.mock('/api/login', 'post', (options) => { const { username, password } = JSON.parse(options.body) if (username === 'admin' && password === '123456') { return Mock.mock({ code: 200, message: '登录成功', token: '@guid' }) } else { return Mock.mock({ code: 401, message: '用户名或密码错误' }) } }) ``` 2. 在 main.js 中引入 mock ```javascript // src/main.js import Vue from 'vue' import App from './App.vue' import axios from 'axios' // 只在开发环境启用 mock if (process.env.NODE_ENV === 'development') { require('./mock') } Vue.prototype.$http = axios new Vue({ render: h => h(App) }).$mount('#app') ``` 3. 在组件中使用 ```vue <template> <div> <button @click="getUsers">获取用户</button> <button @click="login">登录</button> </div> </template> <script> export default { methods: { async getUsers() { const res = await this.$http.get('/api/user') console.log('用户数据:', res.data.list) }, async login() { const res = await this.$http.post('/api/login', { username: 'admin', password: '123456' }) console.log('登录结果:', res.data) } } } </script> ``` --- #### 方案 2:使用 Vue CLI 的 devServer 代理(适合静态 JSON) ```javascript // vue.config.js module.exports = { devServer: { proxy: { '/api': { target: 'http://localhost:8080', // 代理到本地 bypass: function(req, res) { // 根据请求路径返回不同的 mock 数据 if (req.path === '/api/user') { return res.send({ list: [ { id: 1, name: '张三' }, { id: 2, name: '李四' } ] }) } if (req.path === '/api/login') { return res.send({ code: 200, token: 'mock-token' }) } } } } } } ``` --- #### 方案 3:使用第三方库 vue-mock(简单场景) ```bash npm install vue-mock --save-dev ``` ```javascript // src/main.js import Vue from 'vue' import VueMock from 'vue-mock' Vue.use(VueMock, { mock: { '/api/user': { get: { list: [ { id: 1, name: '用户A' }, { id: 2, name: '用户B' } ] } } } }) ``` ```vue <script> export default { async mounted() { const users = await this.$mock.get('/api/user') console.log(users) } } </script> ``` --- ### 各方案对比 | 方案 | 优点 | 缺点 | 适用场景 | |-------------|--------------------------|--------------------------|-----------------------| | Mock.js | 功能强大,支持动态数据 | 需要额外配置 | 复杂业务场景 | | devServer | 无需额外依赖 | 只能返回静态数据 | 简单静态数据模拟 | | vue-mock | 最简单易用 | 功能有限 | 快速原型开发 | --- ### 高级用法:环境切换 ```javascript // src/mock/index.js import Mock from 'mockjs' // 模拟数据函数 export function setupMock() { if (!process.env.VUE_APP_MOCK) return Mock.mock('/api/data', 'get', { data: Mock.mock('@paragraph') }) } // 在 main.js 中 import { setupMock } from './mock' setupMock() ``` 在 `.env.development` 中添加: ```ini VUE_APP_MOCK=true ``` 在 `.env.production` 中不添加此变量 --- ### 最佳实践建议 1. **统一管理**:在 `src/mock` 目录下按模块组织文件 - `user.mock.js` - `product.mock.js` - `order.mock.js` 2. **使用随机数据**: ```javascript Mock.mock('/api/products', { 'list|10': [{ 'id|+1': 1000, 'name': '@ctitle(5,10)', 'price|100-5000': 1, 'stock|0-1000': 1, 'createdAt': '@datetime' }] }) ``` 3. **模拟网络延迟**: ```javascript Mock.setup({ timeout: '200-600' // 随机延迟 200-600ms }) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值