Skip to main content

WireMock Extension for LocalStack

Project description

WireMock on LocalStack

This repo contains a LocalStack Extension that facilitates developing WireMock-based applications locally.

The extension supports two modes:

  • OSS WireMock: Uses the open-source wiremock/wiremock image (default)
  • WireMock Runner: Uses wiremock/wiremock-runner with WireMock Cloud integration (requires API token)

Prerequisites

  • Docker
  • LocalStack Pro (free trial available)
  • localstack CLI
  • make
  • WireMock CLI (for WireMock Runner mode)

Install from GitHub repository

This extension can be installed directly from this Github repo via:

localstack extensions install "git+https://github.com/localstack/localstack-extensions.git#egg=localstack-wiremock&subdirectory=wiremock"

Install local development version

To install the extension into LocalStack in developer mode, you will need Python 3.11, and create a virtual environment in the extensions project.

In the newly generated project, simply run

make install

Then, to enable the extension for LocalStack, run

localstack extensions dev enable .

You can then start LocalStack with EXTENSION_DEV_MODE=1 to load all enabled extensions:

EXTENSION_DEV_MODE=1 localstack start

Usage

OSS WireMock Mode (Default)

Start LocalStack without any special configuration:

localstack start

The WireMock server will be available at http://wiremock.localhost.localstack.cloud:4566.

You can import stubs using the WireMock Admin API (assuming a stubs.json exists in the local working directory):

curl -X POST -H "Content-Type: application/json" \
  --data-binary "@stubs.json" \
  "http://wiremock.localhost.localstack.cloud:4566/__admin/mappings/import"

WireMock Runner Mode (Cloud Integration)

To use WireMock Runner with WireMock Cloud, you need:

  1. A WireMock Cloud API token
  2. A .wiremock directory with your mock API configuration

Step 1: Get your WireMock Cloud API Token

  1. Sign up at WireMock Cloud
  2. Go to Settings → API Tokens
  3. Create a new token

Step 2: Create your Mock API configuration

First, create a Mock API in WireMock Cloud, then pull the configuration locally:

# Install WireMock CLI if not already installed
npm install -g @wiremock/cli

# Login with your API token
wiremock login

# Pull your Mock API configuration
# Find your Mock API ID from the WireMock Cloud URL (e.g., https://app.wiremock.cloud/mock-apis/zwg1l/...)
wiremock pull mock-api <mock-api-id>

This creates a .wiremock directory with your wiremock.yaml configuration.

Step 3: Start LocalStack with WireMock Runner

LOCALSTACK_WIREMOCK_API_TOKEN="your-api-token" \
LOCALSTACK_WIREMOCK_CONFIG_DIR="/path/to/your/project" \
localstack start

Environment Variables:

  • WIREMOCK_API_TOKEN: Your WireMock Cloud API token (required for runner mode)
  • WIREMOCK_CONFIG_DIR: Path to the directory containing your .wiremock folder (required for runner mode)
  • WIREMOCK_IMAGE: Custom Docker image name for the Wiremock OSS image (default: wiremock/wiremock)
  • WIREMOCK_IMAGE_RUNNER: Custom Docker image name for the Wiremock Cloud runner image (default: wiremock/wiremock-runner)

Note: When using the LocalStack CLI, prefix environment variables with LOCALSTACK_ to forward them to the container.

Sample Application

See the sample-app-runner/ directory for a complete example using Terraform that demonstrates:

  • Creating an API Gateway
  • Lambda function that calls WireMock stubs
  • Integration testing with mocked external APIs

Change Log

  • 0.1.1: Add environment variables to customize the WireMock image names
  • 0.1.0: Initial release of the extension

License

This project is licensed under the Apache License, Version 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

localstack_wiremock-0.1.1.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

localstack_wiremock-0.1.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file localstack_wiremock-0.1.1.tar.gz.

File metadata

  • Download URL: localstack_wiremock-0.1.1.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for localstack_wiremock-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2717ea5735fce05110aa0020820e2b42c478312884af7b0a2d3937b5a73c76cb
MD5 af0e09eed5029d55bbb61d39d5e69b54
BLAKE2b-256 c310419bdd324cbc4ed3f4fae297f633876e87cd60e5b2f44b4b596cc13e2b39

See more details on using hashes here.

File details

Details for the file localstack_wiremock-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for localstack_wiremock-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fd076ceb2c289b8bf6c0b4b02be542742cf157000a4b9cdea4fe00d206a18e67
MD5 526d56da0cd82f5f08324955dcffc9e7
BLAKE2b-256 a8e82bbbc721b5f173eef577119f8b108e5e0040bff933dbc24afdaff577c4dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page