Back to rankings

easy-mock/easy-mock

JavaScripteasy-mock.com

A persistent service that generates mock data quickly and provids visualization view.

mockeasy-mockdata-generatorswaggerjavascriptvue
Star Growth
Stars
9k
Forks
1.3k
Weekly Growth
Issues
157
5k
Aug 2017Jul 2020Jul 2023Jul 2026
Artifactsnpmnpm install easy-mock
README

Node.js Version MongoDB Version Redis Version Build Status Coverage Status js-standard-style License Chat

Thanks to Souche Inc. which provides the server to hold an online service.

Souche Inc.

Introduction

If you're unable to deploy an Easy Mock service by yourself, the online service is recommended.

Easy Mock is a persistent service that generates mock data quickly and provids visualization view.

Features

  • Support API proxying
  • Convenient shortcuts
  • Support Collaborative editing
  • Support team project
  • Support RESTful
  • Support Swagger | OpenAPI Specification (1.2 & 2.0 & 3.0)
    • Create project quickly based on Swagger
    • Support displaying parameters and the return value
    • Support displaying class model
  • More flexible and extensible in response data
  • Support for custom response configuration (example: status/headers/cookies)
  • Use Mock.js schema
  • Support restc to preview API

Quick Start

Before starting, we assume that you're already have installed Node.js (v8.x, v10.x is not supported) & MongoDB (>= v3.4) & Redis>= v4.0).

Installation

$ git clone https://github.com/easy-mock/easy-mock.git
$ cd easy-mock && npm install

Configuration

Find config/default.json or create config/local.json to overwrite some configuration.

Easy Mock will load different configuration files according to your environment. Reference to node-config to get more information because Easy Mock uses node-config as its configuration module.

{
  "port": 7300,
  "host": "0.0.0.0",
  "pageSize": 30,
  "proxy": false,
  "db": "mongodb://localhost/easy-mock",
  "unsplashClientId": "",
  "redis": {
    "keyPrefix": "[Easy Mock]",
    "port": 6379,
    "host": "localhost",
    "password": "",
    "db": 0
  },
  "blackList": {
    "projects": [], // projectId, e.g."5a4495e16ef711102113e500"
    "ips": [] // ip, e.g. "127.0.0.1"
  },
  "rateLimit": { // https://github.com/koajs/ratelimit
    "max": 1000,
    "duration": 1000
  },
  "jwt": {
    "expire": "14 days",
    "secret": "shared-secret"
  },
  "upload": {
    "types": [".jpg", ".jpeg", ".png", ".gif", ".json", ".yml", ".yaml"],
    "size": 5242880,
    "dir": "../public/upload",
    "expire": {
      "types": [".json", ".yml", ".yaml"],
      "day": -1
    }
  },
  "ldap": {
    "server": "", // Set server to enable LDAP login. e.g. "ldap://localhost:389" or "ldaps://localhost:389"(use SSL)
    "bindDN": "", // Username,e.g. "cn=admin,dc=example,dc=com"
    "password": "",
    "filter": {
      "base": "", // Base where we can search for users,e.g. "dc=example,dc=com"
      "attributeName": "" // e.g. "mail" or "email" etc.
    }
  },
  "fe": {
    "copyright": "",
    "storageNamespace": "easy-mock_",
    "timeout": 25000,
    "publicPath": "/dist/"
  }
}

Note:

  • The default value of publicPath is '/dist/'. You can replace it to your own CDN if necessary.
  • If you changed some configuration of fe, you should run build command to adapt that changes.

Background:

Easy Mock supports two background service, Unsplash and Bing.

If you leave unsplashClientId blank, the background will be provided by Bing.

Launch

$ npm run dev
# Visit http://127.0.0.1:7300

More Commands

# Build front-end assets
$ npm run build

# Run Easy Mock as production environment (You should run `build` first)
$ npm run start

# Run unit test
$ npm run test

# Test lint
$ npm run lint

Deployment

Please configure your configuration files before this step.

PM2

We're recommending you to use PM2 as your daemon process.

Install PM2 Globally

$ [sudo] npm install pm2 -g

Launch via PM2

You should run build before this step.

$ NODE_ENV=production pm2 start app.js

Releases

Refer to Release and you'll get all the releases and theirs changelog.

Contributing

Easy Mock is now maintained by Mobi-Architecture team of Souche Inc. If you have any question about this project, you're welcome to post Issues or make some Pull Requests. Before contributing, we think you'd better read the contributing guide.

Real-Time Feedback

You may make some real-time feedback via QQ group.

QQ is the most popular IM software in China and you can get it downloaded via http://en.qq.com/.

The QQ group number is 595325417, and here's the QR code of the group:

Who Deployed Easy Mock

If you deployed Easy Mock in your own server, please tell us

Core Contributors


chuangker

XadillaX

ostoc

xinyu198736

License

GPL-3.0

Related repositories
PanJiaChen/vue-element-admin

:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin

VueMIT Licensevueadmin
90.2k30.4k
typicode/json-server

Get a full fake REST API with zero coding in less than 30 seconds (seriously)

JavaScriptnpmMIT Licenseapifake
75.7k7.3k
keploy/keploy

Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.

GoGo ModulesApache License 2.0testingtest-automation
keploy.io
18.3k2.3k
mswjs/msw

Industry standard API mocking for JavaScript.

TypeScriptnpmMIT Licensemswmock
mswjs.io
18.1k614
mockito/mockito

Most popular Mocking framework for unit tests written in Java

JavaMavenMIT Licensemockitojava
mockito.org
15.4k2.7k
nock/nock

HTTP server mocking and expectations library for Node.js

JavaScriptnpmMIT Licensehttpmock
13.1k759
mockery/mockery

Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succinct API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL).

PHPPackagistBSD 3-Clause "New" or "Revised" Licensemockeryphpunit
docs.mockery.io/en/stable/
10.7k466
zuiidea/antd-admin

AI-friendly enterprise front-end best practices

TypeScriptnpmMIT Licenseantdreact
antd-admin.zuiidea.top
9.8k2.5k
mockoon/mockoon

Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.

TypeScriptnpmMIT Licensemockserver
mockoon.com
8.3k461
vektra/mockery

A mock code autogenerator for Go

GoGo ModulesBSD 3-Clause "New" or "Revised" Licensegomock
vektra.github.io/mockery/
7.2k455
DATA-DOG/go-sqlmock

Sql mock driver for golang to test database interactions

GoGo ModulesOthersql-drivergo
6.6k413
orval-labs/orval

orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺

TypeScriptnpmMIT Licenseorvalaxios-client
orval.dev
6.3k648