mocker-api is a free, open source api development & testing project written in TypeScript and released under MIT. It has 500 GitHub stars, 64 forks and 27 open issues, and was last pushed 5 months ago. On this registry it ranks #101 of 103 tracked projects in API Development & Testing, with 5 head-to-head comparisons available.

What is mocker-api?

mocker-api is an MIT-licensed TypeScript tool that creates mock endpoints for REST APIs, built for developers who need to test an application without running the actual REST API server.

What it is

mocker-api is a Node.js package that runs a local HTTP server from a single configuration file and answers requests with the mock responses you define. It lives in the npm ecosystem and is distributed as mocker-api, with a command-line entry point named mocker and a programmatic entry point exposed as apiMocker(app, path, option). The project is written in TypeScript, licensed under MIT, and ships a documentation site at https://jaywcjlove.github.io/mocker-api. It carries topics such as mock-server, mock-data, mockjs, mockup, webpack and webpack-dev-server, which reflects where it is most often used: front-end projects whose build tooling already runs a development server.

The concrete problem it solves is the missing or unfinished backend. When a REST API server is unavailable, still under construction, or too slow to exercise repeatedly, mocker-api stands in for it by serving your own fixtures and route handlers over HTTP. The configuration file replaces the real service: paths such as /api/user and /api/user/list return the objects and arrays written in api.js, and method-prefixed keys such as GET /api/user, POST /api/login/account and DELETE /api/user/:id let a single file describe a whole surface. It also handles the case where only part of a backend exists, because proxy rules forward selected paths to a real upstream while the remaining paths stay mocked.

Key capabilities

  • A single configuration file, conventionally api.js or mocker/index.js, defines all routes; bare keys such as /api/user default to GET, and explicit keys such as GET /api/user/list, POST /api/login/account and DELETE /api/user/:id select the HTTP method.
  • Route handlers receive Express-style request and response objects, so req.body, req.params and res.status(403).json(...) work inside a mock, as shown by the login example that returns { status: 'ok', code: 0, token: 'sdfsdfsdfdsf' } on success.
  • Parameterized and wildcard paths are supported through path-to-regexp syntax, for example GET /api/:owner/:repo/raw/:ref/*path, which exposes owner, repo, ref and req.params.path to the handler.
  • Proxy rules under the _proxy.proxy key map a path string to an upstream, such as '/repos/*path': 'https://api.github.com/' or a local service at http://127.0.0.1:3721/, with changeHost: true to set the request host header.
  • pathRewrite rewrites the target URL path, with object keys used as regular expressions, for example '^/api/repos/': '/repos/'.
  • httpProxy passes options and listeners to http-proxy, including ignorePath: true and a proxyReq listener callback.
  • Built-in hot Mocker file replacement, so the configuration file can be edited while the mock server keeps running, plus a priority option choosing between proxy and mocker and a withFullUrlPath option for matching full URL paths such as /test?a=1&b=1.

Who uses it and how

  • Front-end developers who need to build and test screens before a backend exists, wiring fixtures into api.js and running the mock on a chosen port.
  • Projects already using webpack or webpack-dev-server, where mocker-api is mounted into the existing dev server through apiMocker(app, path, option) instead of starting a second process.
  • Teams mocking only the unfinished part of a service, proxying the rest: one rule sends /repos/*path to https://api.github.com/ while other paths stay local.
  • Developers who prefer no build-tool coupling at all, since the package runs independently of webpack and webpack-dev-server and can be launched from the command line instead.
  • Manual and exploratory testing workflows where a controlled response is needed, including deliberate failure cases such as returning HTTP 403 when a password and username pair does not match.

Getting started

Install globally with npm install mocker-api -g, or add it to a project as a development dependency with npm install mocker-api --save-dev. Create a configuration file such as api.js and start the server with mocker ./api.js, which listens on port 3721 by default and accepts --host and --port to change the address, for example mocker ./api.js --host localhost --port 8000.

How it compares

No list of paid products is provided in the facts, so the closest named neighbours are the tools the README positions the package against: webpack and webpack-dev-server, which it can plug into but does not require, and the http-proxy and path-to-regexp packages it builds on. In that setting it is the mocking layer rather than the build layer, and it can run as a standalone mocker ./api.js process when no bundler is present.

When to use it — and when not to

A self-hoster runs a Node.js process from a local configuration file, and the facts mention no database, object storage, SMTP or other backing service to operate, so the running cost is small but the operational control remains entirely with the user. It is a poor fit for anyone who needs a managed or hosted mocking service, or a full contract-testing suite, since the facts describe only a local server driven by a configuration file. The honest caveats are that the repository is modest in size at roughly 500 stars and 64 forks with 27 open issues, and that the README excerpt is short and leans on the linked documentation site, so a prospective adopter should read the fuller docs before committing to it.

project readme (upstream, from github) — read inline

Using my app is also a way to support me:
Scap: Screenshot & Markup Edit Screen Test Deskmark Keyzer Vidwall Hub VidCrop Vidwall Mousio Hint Mousio Musicer Audioer FileSentinel FocusCursor Videoer KeyClicker DayBar Iconed Menuist Quick RSS Quick RSS Web Serve Copybook Generator DevTutor for SwiftUI RegexMate Time Passage Iconize Folder Textsound Saver Create Custom Symbols DevHub Resume Revise Palette Genius Symbol Scribe


Mocker API LOGO

Buy me a coffee Follow On X Build & Deploy Download
Repo Dependents Open in unpkg npm version

中文 · Quick Start · Usage · Options · Delayed · Example · License · type

mocker-api creates mocks for REST APIs. It is helpful when you need to test your application without the actual REST API server.

Features:

🔥 Built-in support for hot Mocker file replacement.
🚀 Quickly and easily configure the API via JSON.
🌱 Mock API proxying made simple.
💥 Can be used independen

readme truncated — read the full docs on github

Frequently asked questions

Is mocker-api free to use?

mocker-api is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does mocker-api do?

mocker-api that creates mocks for REST APIs. It will be helpful when you try to test your application without the actual REST API server.

What is mocker-api written in?

mocker-api is primarily written in TypeScript. Its source is publicly available at https://github.com/jaywcjlove/mocker-api, and it has 500 GitHub stars.