go-mokapi
v0.30.1
Published
Easy and flexible API mocking
Downloads
777
Readme
🚀 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.jsonMacOS
brew tap marle3003/tap
brew install mokapi
mokapi https://petstore31.swagger.io/api/v31/openapi.jsonDocker
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 or headers:
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.
🧪 Learn by Example
Explore tutorials that walk you through mocking different protocols and scenarios:
🌍 Get started with REST API
This tutorial will show you how to mock a REST API using an OpenAPI specification.⚡ Mocking Kafka with AsyncAPI
mocking a Kafka topic using Mokapi and verifying that a producer generates valid messages.👨💻 Mocking LDAP Authentication
Simulate LDAP-based login flows, including group-based permissions.📧 Mocking SMTP Mail Servers
Use Mokapi to simulate sending and receiving emails in Node.js apps.🖥️ End-to-End Testing with Jest and GitHub Actions
Integrate Mokapi into your CI pipeline for full-stack E2E testing.
More examples are available on mokapi.io/docs/resources
📚 Documentation
☕ Support
If you find Mokapi helpful, consider supporting the project:
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
