Skip to content

marle3003/mokapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mokapi

Your API Mocking Tool for Agile Development

Github release Build status Codecov branch MIT License

Download · Documentation

🚀 Overview

Mokapi is an open-source tool that helps Agile, DevOps, and Continuous Deployment teams design, test, and validate APIs before implementation. It enables rapid prototyping of scenarios—like delayed responses, failures, or edge cases—without needing a live backend. By simulating real-world conditions early, Mokapi improves API quality and reduces the risk of bugs in production.

✨ Features

  • Multiple Protocol support: HTTP, HTTPS, Apache Kafka, SMTP, LDAP
  • Everything as Code: Reusing, version control, consistency and integrate mocks with your CI/CD.
  • An embedded JavaScript engine to control everything - status, headers, delays, errors or other edge cases.
  • Patch Configuration changes for mocking needs, rather than changing the original contract
  • Multiple Provider support: File, HTTP, GIT, NPM to gather configurations and scripts.
  • Dashboard to see what's going on.

🔧 Spin Up Mokapi

Install and start Mokapi using one of the following methods. Replace the URL with your own OpenAPI or AsyncAPI specification.

Windows

choco install mokapi
mokapi https://petstore31.swagger.io/api/v31/openapi.json

MacOS

brew tap marle3003/tap 
brew install mokapi
mokapi https://petstore31.swagger.io/api/v31/openapi.json

Docker

docker run -p 80:80 -p 8080:8080 mokapi/mokapi:latest https://petstore31.swagger.io/api/v31/openapi.json

🎯 Hit Your First Mock

Once Mokapi is running, you can make requests to your mocked API like so:

curl http://localhost/api/v31/pet/2 -H 'Accept: application/json'

🧩 Customize Your Mock with JavaScript

Mokapi makes it simple to control responses using embedded JavaScript.

For example, you can dynamically change the response based on query parameters:

import { on } from 'mokapi';

export default function() {
    on('http', (request, response): boolean => {
        switch (request.path.petId) {
            case 2:
                response.data.name = 'Betty';
                return true;
            case 9:
                response.statusCode = 404;
        }
        return false;
    });
}

🖥️ Dashboard

Mokapi’s dashboard lets you visualize your mock APIs. View requests and responses in real-time, generate and validate sample data for testing.

Mokapi Web UI

🧪 Learn by Example

Explore tutorials that walk you through mocking different protocols and scenarios:

More examples are available on mokapi.io/docs/resources

📚 Documentation

☕ Support

If you find Mokapi helpful, consider supporting the project:

Buy Me A Coffee

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.