mocker-api 为 REST API 创建模拟 API。 当您尝试在没有实际 REST API 服务器的情况下测试应用程序时,它会很有用。
特征:
��内置支持热Mocker文件替换。
��通过JSON快速轻松地配置API。
��模拟API代理变得简单。
��可以独立使用,无需依赖webpack和webpack-dev-server。
mkdir mocker-app && cd mocker-app
# Create a mocker configuration file based on rules
touch api.js
# Global install dependent.
npm install mocker-api -g
# Run server
mocker ./api.js
你可以将 package.json 配置作为当前项目依赖项。
npm install mocker-api --save-dev
mocker-api
在开发模式支持模拟数据, 将入口文件放入 mocker/index.js
.
您可以通过添加 httpProxy 配置来修改 http-proxy 选项并添加事件侦听器
const proxy = {
// Priority processing.
// apiMocker(app, path, option)
// This is the option parameter setting for apiMocker
_proxy: {
proxy: {
'/repos/(.*)': 'https://api.github.com/',
'/:owner/:repo/raw/:ref/(.*)': 'http://127.0.0.1:2018'
},
changeHost: true,
// modify the http-proxy options
httpProxy: {
options: {
ignorePath: true,
},
listeners: {
proxyReq: function (proxyReq, req, res, options) {
console.log('proxyReq');
},
},
},
},
// =====================
'GET /api/user': {
id: 1,
username: 'kenny',
sex: 6
},
'GET /api/user/list': [
{
id: 1,
username: 'kenny',
sex: 6
}, {
id: 2,
username: 'kenny',
sex: 6
}
],
'GET /api/:owner/:repo/raw/:ref/(.*)': (req, res) => {
const { owner, repo, ref } = req.params;
// http://localhost:8081/api/admin/webpack-mock-api/raw/master/add/ddd.md
// owner => admin
// repo => webpack-mock-api
// ref => master
// req.params[0] => add/ddd.md
return res.json({
id: 1,
owner, repo, ref,
path: req.params[0]
});
},
'POST /api/login/account': (req, res) => {
const { password, username } = req.body;
if (password === '888888' && username === 'admin') {
return res.json({
status: 'ok',
code: 0,
token: "sdfsdfsdfdsf",
data: {
id: 1,
username: 'kenny',
sex: 6
}
});
} else {
return res.status(403).json({
status: 'error',
code: 403
});
}
},
'DELETE /api/user/:id': (req, res) => {
console.log('---->', req.body)
console.log('---->', req.params.id)
res.send({ status: 'ok', message: '删除成功!' });
}
}
module.exports = proxy;
proxy
=> {}
Proxy settings.changeHost
=> {}
Setting req headers host.httpProxy
=> {}
Set the listen event and configuration of http-proxybodyParserJSON
JSON body parserbodyParserText
Text body parserbodyParserRaw
Raw body parserbodyParserUrlencoded
URL-encoded form body parserbodyParserConf
=> {}
bodyParser settings. eg: bodyParserConf : {'text/plain': 'text','text/html': 'text'}
will parsed Content-Type='text/plain' and Content-Type='text/html'
with bodyParser.text
⚠️ 没有通配符 *
- 使用参数 (.*)
, suport v1.7.3+
你可以使用工具自带方法增强模拟. #17
const delay = require('mocker-api/utils/delay');
const noProxy = process.env.NO_PROXY === 'true';
const proxy = {
'GET /api/user': {
id: 1,
username: 'kenny',
sex: 6
},
// ...
}
module.exports = (noProxy ? {} : delay(proxy, 1000));
apiMocker(app, mocker[,proxy])
多入口mocker
文件监听
const mockerFile = ['./mock/index.js'];
// or
// const mockerFile = './mock/index.js';
apiMocker(app, mockerFile, proxy)
⚠️ Not dependent on webpack and webpack-dev-server.
# Global install dependent.
npm install mocker-api -g
# Run server
mocker ./mocker/index.js
Or you can put it the package.json
config as a current project dependency.
{
"name": "base-example",
"scripts": {
+ "api": "mocker ./mocker"
},
"devDependencies": {
+ "mocker-api": "^1.6.4"
},
"license": "MIT"
}
⚠️ Not dependent on webpack and webpack-dev-server.
const express = require('express');
+ const path = require('path');
+ const apiMocker = require('mocker-api');
const app = express();
+ apiMocker(app, path.resolve('./mocker/index.js'))
app.listen(8080);
To use api mocker on your Webpack projects, simply add a setup options to your webpack-dev-server options:
Change your config file to tell the dev server where to look for files: webpack.config.js
.
const HtmlWebpackPlugin = require('html-webpack-plugin');
+ const path = require('path');
+ const apiMocker = require('mocker-api');
module.exports = {
entry: {
app: './src/index.js',
print: './src/print.js'
},
devtool: 'inline-source-map',
+ devServer: {
+ ...
+ before(app){
+ apiMocker(app, path.resolve('./mocker/index.js'), {
+ proxy: {
+ '/repos/*': 'https://api.github.com/',
+ '/:owner/:repo/raw/:ref/*': 'http://127.0.0.1:2018'
+ },
+ changeHost: true,
+ })
+ }
+ },
plugins: [
new HtmlWebpackPlugin({
title: 'Development'
})
],
output: {
filename: '[name].bundle.js',
path: require.resolve(__dirname, 'dist')
}
};
Must have a file suffix! For example: ./mocker/index.js
.
Let's add a script to easily run the dev server as well: package.json
{
"name": "development",
"version": "1.0.0",
"description": "",
"main": "webpack.config.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "start": "webpack-dev-server --open",
"build": "webpack"
},
"keywords": [],
"author": "",
"license": "MIT",
"devDependencies": {
....
}
}
模拟API代理简单模式。
{
before(app){
+ apiMocker(app, path.resolve('./mocker/index.js'), {
+ proxy: {
+ '/repos/*': 'https://api.github.com/',
+ },
+ changeHost: true,
+ })
}
}
1. 安装依赖:npm i mocker-api mockjs -D 2. 在development模式对应的webpack配置下添加: before(app, server) { // console.log('MOCK', process.env) if(process.env.MOCK) { // mocker-api apiMocker(app, path.reso
工具链接: https://github.com/gstroup/apimocker 背景: QA在内网部署服务器环境,但系统涉及服务太多,无法部署所有服务,并且ABTest(Maestro)服务使用Google OAuth做授权认证,测试环境没有域名,无法搭建实际的Maestro服务。在后端(one-eye)服务的代码中,每次对Maestro服务的请求均返回特定的json字符串,因此这种情况非常
webpack-api-mocker是一个为 REST API创建 mock 的webpack-dev-server中间件。 当您尝试在没有实际的 REST API服务器的情况下,测试您的应用程序时,这将会很有帮助。 安装 npm install webpack-api-mocker --save-dev 使用 定义API,假设我们讲API放到一个独立文件 mocker/index.js 中,
API Mocker 先贴上项目地址:DXY-F2E/api-mocker 随着web发展,前后端分离的演进,网页的交互变的越来越复杂。在项目开发过程中,前后端并行开发时,在涉及到接口的部分,总是遇到各类问题。诸如接口假数据、接口参数的约定、代理调试等等,极大的影响了开发效率。 API Mocker致力于解决前后端开发协作过程中出现的各类问题,提高开发效率,对接口做统一管理,同时也能为后续的迭代维
IT实战联盟博客:http://blog.100boot.cn mocker-api 为 REST API 创建模拟 API。 当您尝试在没有实际 REST API 服务器的情况下测试应用程序时,它会很有用。 特征: 内置支持热 Mocker 文件替换。 通过 JSON 快速轻松地配置API。 模拟 API 代理变得简单。 可以独立使用,无需依赖 webpack 和webpack-dev-
我在micronaut中有以下接口来执行HTTP POST请求: 我有一个调用接口的类: 我想在我的spock测试中模拟/存根API调用,我尝试了以下方法: 然而,我得到的错误:
我是一个新的android,当我点击运行按钮创建AVD时,它出现如下,我不能理解它说什么,请帮助我理解它是什么意思,我如何解决这个问题 C:\users\neil\appdata\local\android\sdk2\tools\emulator.exe-avd Nexus_S_API_21-netspeed full-netdelay none使用参数创建文件系统:无法获取wglGetExten
我想通过JDBC创建一个不存在的数据库。与MySQL不同,PostgreSQL不支持语法。实现这一点的最佳方法是什么? 应用程序不知道数据库是否存在。它应该检查,如果数据库存在,应该使用它。因此,连接到所需的数据库是有意义的,如果由于数据库不存在而导致连接失败,则应创建新数据库(通过连接到默认的postgres数据库)。我检查了Postgres返回的错误代码,但找不到任何相关的代码。 实现这一点的
我正在尝试使用最新的ADT(21)和SDK工具为Nexus10创建android模拟器。Nexus 10 AVD的配置如下: 如果这个配置不对,请告诉我。创建上述配置后,我能够创建AVD,但无法加载它。它只显示一个黑屏。这里会有什么问题? 我使用的是Ubuntu11.10。
我正在使用JBoss 9. x应用服务器,我想创建一个REST api来与我的EJB通信。我创建了两个类PlayerRestApi和PlayerEJB,并将其部署到野蝇,但是当我请求 /player响应总是404。 注意:我将发布带有虚拟返回的PlayerRestApi类。 PlayerRestApi代码: 当我尝试此路线时,localhost:http://localhost:28070/app
问题内容: 我有以下课程: 和测试类: 如何在MyClass中将Apple实例作为模拟注入? 问题答案: 您可以通过3种方式解决此问题: 抽象工厂 :使用具体的工厂类,而不是使用静态方法: 在测试类中,模拟工厂: PowerMock :使用PowerMock创建静态方法的模拟。查看我对一个相关问题的答案,看看它是如何完成的。 可测试的类 :将创建的内容包装在方法中,并创建一个覆盖它的测试类: 当然