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.