From 8769810cb135863122bc433d7bedaf5bb1873383 Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Sun, 22 Mar 2026 21:06:17 +0000 Subject: [PATCH] Initial upload: mockapi - OpenAPI Mock Server Generator --- README.md | 159 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 157 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 15c76bb..607e83e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,158 @@ -# mockapi +# MockAPI -OpenAPI Mock Server Generator - Generate functional mock APIs from OpenAPI 3.x specs \ No newline at end of file +OpenAPI Mock Server Generator - Generate functional mock APIs from OpenAPI 3.x specifications. + +## Features + +- **OpenAPI 3.x Support**: Parse and validate OpenAPI specifications +- **Mock Server Generation**: Generate working mock servers using connexion +- **Random Data Generation**: Create realistic test data from JSON schemas using Faker +- **Configurable Response Delays**: Simulate network latency with fixed or random delays +- **Error Simulation**: Simulate HTTP error responses for testing +- **Request Validation**: Validate incoming requests against OpenAPI spec +- **Hot-Reload**: Auto-restart server on spec file changes +- **YAML Configuration**: Configure mock behavior via `mockapi.yaml` + +## Installation + +```bash +pip install -e . +``` + +Or install from source: + +```bash +git clone https://7000pct.gitea.bloupla.net/7000pctAUTO/mockapi.git +cd mockapi +pip install -e ".[dev]" +``` + +## Quick Start + +```bash +# Validate an OpenAPI spec +mockapi validate examples/petstore.yaml + +# Start a mock server +mockapi start examples/petstore.yaml + +# Generate a summary +mockapi generate examples/petstore.yaml +``` + +## CLI Commands + +### validate +Validate an OpenAPI specification file: +```bash +mockapi validate spec.yaml +``` + +### start +Start a mock server from an OpenAPI spec: +```bash +mockapi start spec.yaml --port 8080 --host 0.0.0.0 +``` + +Options: +- `--port, -p`: Port number (default: 8080) +- `--host, -h`: Host to bind to (default: 0.0.0.0) +- `--delay, -d`: Fixed response delay in milliseconds +- `--random-delay`: Use random delays instead of fixed +- `--config, -c`: Path to mockapi.yaml configuration +- `--watch, -w`: Enable hot-reload on spec changes +- `--verbose, -v`: Enable verbose output + +### generate +Generate a summary from an OpenAPI spec: +```bash +mockapi generate spec.yaml +``` + +### show-config +Show current configuration: +```bash +mockapi show-config +``` + +## Configuration + +Create a `mockapi.yaml` file to configure mock behavior: + +```yaml +port: 8080 +host: 0.0.0.0 +delay: 100 +random_delay: false +seed: 42 +validate_requests: true +error_probability: 0.0 +``` + +### Configuration Options + +| Option | Type | Default | Description | +|--------|------|---------|-------------| +| port | int | 8080 | Server port | +| host | string | 0.0.0.0 | Server host | +| delay | int | 0 | Fixed delay in ms | +| random_delay | bool | false | Use random delays | +| seed | int | 42 | Random seed | +| validate_requests | bool | true | Validate requests | +| error_probability | float | 0.0 | Error probability | + +### Environment Variables + +- `MOCKAPI_PORT`: Override default port +- `MOCKAPI_HOST`: Override default host +- `MOCKAPI_SEED`: Override random seed + +## Hot Reload + +Enable automatic server restart when the spec file changes: + +```bash +mockapi start spec.yaml --watch +``` + +## Request Validation + +By default, incoming requests are validated against the OpenAPI spec. Disable with: + +```yaml +validate_requests: false +``` + +## Error Simulation + +Use the `x-mock-config` extension in your OpenAPI spec: + +```yaml +paths: + /users: + get: + x-mock-config: + errorProbability: 0.1 + errorCode: 500 + errorMessage: "Service unavailable" +``` + +## Development + +```bash +# Install development dependencies +pip install -e ".[dev]" + +# Run tests +pytest tests/ -v + +# Run linting +ruff check src/ + +# Type checking +mypy src/mockapi/ +``` + +## License + +MIT License