API Mock Server

v1.0.0

Lightweight API mock server for prototyping and testing, supporting JSON/JSON Schema responses, dynamic data, validation, latency, and webhook simulation.

0· 21·0 current·0 all-time
byLv Lancer@kaiyuelv
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The code (scripts/mock_server.py) implements a Flask-based mock server with JSON Schema validation, latency simulation, dynamic handlers, and config loading, which matches the skill name and description. Minor mismatch: README/SKILL.md mention webhook simulation and include 'requests' in requirements, but the server implementation contains no outbound webhook logic or use of requests. This looks like a documentation/feature-gap rather than intentional misdirection.
Instruction Scope
SKILL.md stays on-topic (how to define routes, run the server, load config, run tests). It mentions environment variables (MOCK_PORT, MOCK_HOST, MOCK_LATENCY) but the code does not read those environment variables directly — configuration is passed via constructor/CLI flags. Instructions also tell you to run pytest in the workspace; tests and examples operate only on local files (/tmp usage in an example). No instructions request reading unrelated system files or credentials.
Install Mechanism
There is no install spec supplied (instruction-only skill). Code files and a requirements.txt are included; installing would be a normal pip install of listed dependencies. Nothing in the manifest pulls arbitrary archives or runs remote installers.
Credentials
The skill does not declare required environment variables, credentials, or config paths. The optional env vars shown in SKILL.md are reasonable for configuring a local mock server but are not required by the code as written. No secrets or external credentials are requested.
Persistence & Privilege
always is false and the skill does not request persistent platform privileges or modify other skills or system-wide agent settings. It runs as a standalone Flask server when invoked.
Assessment
This skill appears to be what it says: a local Flask-based API mock server. Before installing/running: (1) note the documentation mentions webhook simulation and includes 'requests' in requirements but the current implementation does not perform outbound webhooks — if you expect webhook callbacks, inspect or extend the code. (2) The default host is 0.0.0.0 (binds all interfaces); avoid exposing the server to untrusted networks or the public internet. (3) Install dependencies in a virtualenv and review scripts/mock_server.py if you need additional behavior (outbound requests, auth, logging). If you need the webhook feature or outbound callbacks, request clarification or a newer version that implements them.

Like a lobster shell, security has layers — review code before you run it.

apivk979jtbhshheekk7sqcfvmchn185cxzrjsonvk979jtbhshheekk7sqcfvmchn185cxzrlatestvk979jtbhshheekk7sqcfvmchn185cxzrmockvk979jtbhshheekk7sqcfvmchn185cxzrrestvk979jtbhshheekk7sqcfvmchn185cxzrservervk979jtbhshheekk7sqcfvmchn185cxzrtestingvk979jtbhshheekk7sqcfvmchn185cxzr
21downloads
0stars
1versions
Updated 6h ago
v1.0.0
MIT-0

api-mock-server - API Mock服务器

Metadata

FieldValue
Nameapi-mock-server
Slugapi-mock-server
Version1.0.0
Homepagehttps://github.com/openclaw/api-mock-server
Categorydevelopment
Tagsapi, mock, server, testing, stub, http, rest, json

Description

English

A lightweight API mock server for rapid prototyping and testing. Define routes with JSON/JSON Schema responses, support dynamic data generation, request validation, latency simulation, and webhook simulation.

中文

轻量级API Mock服务器,用于快速原型开发和测试。支持JSON/JSON Schema响应定义、动态数据生成、请求验证、延迟模拟和Webhook模拟。

Requirements

  • Python 3.8+
  • Flask >= 2.3.0
  • Faker >= 19.0.0
  • jsonschema >= 4.17.0
  • requests >= 2.31.0

Configuration

Environment Variables

MOCK_PORT=3000
MOCK_HOST=0.0.0.0
MOCK_LATENCY=0

Usage

Define Routes

from api_mock_server import MockServer

server = MockServer(port=3000)

# Simple JSON response
server.get("/users", {"users": [{"id": 1, "name": "Alice"}]})

# Dynamic response with path params
server.get("/users/{id}", lambda req: {
    "id": req.params["id"],
    "name": f"User_{req.params['id']}"
})

# POST with validation
server.post("/users", 
    response={"id": 123, "created": True},
    validate_schema={
        "type": "object",
        "required": ["name", "email"],
        "properties": {
            "name": {"type": "string"},
            "email": {"type": "string", "format": "email"}
        }
    }
)

server.start()

Load from Config File

from api_mock_server import MockServer

server = MockServer.from_config("mock-routes.json")
server.start()

API Reference

MockServer

  • get(path, response) - Define GET route
  • post(path, response, validate_schema) - Define POST route
  • put(path, response) - Define PUT route
  • delete(path, response) - Define DELETE route
  • patch(path, response) - Define PATCH route
  • from_config(path) - Load routes from JSON config
  • start() - Start the server
  • stop() - Stop the server

MockRequest

  • params - URL path parameters
  • query - Query string parameters
  • body - Request body
  • headers - Request headers

Examples

See examples/ directory for complete examples.

Testing

cd /root/.openclaw/workspace/skills/api-mock-server
python -m pytest tests/ -v

License

MIT License

Comments

Loading comments...