WireMock

API mocking with WireMock.

Running as a Standalone Process:

java -jar wiremock-standalone.jar \
 --disable-gzip \
 --no-request-journal \
 --port 8080 \
 --print-all-network-traffic \
 --root-dir <DIR> \
 --verbose

Admin API

All routes:

Health:

# health
curl http://localhost:8080/__admin/health

Mappings:

# add single mapping object
curl http://localhost:8080/__admin/mappings \
 -X POST --data @<FILE>

# add all mappings
curl http://localhost:8080/__admin/mappings/import \
 -X POST --data @<FILE>

# list all mappings
curl http://localhost:8080/__admin/mappings
# get number of mappings
curl http://localhost:8080/__admin/mappings --silent | jq .meta

# reset all mappings
curl http://localhost:8080/__admin/mappings/reset -X POST

Files:

# list all files
curl http://localhost:8080/__admin/files
# add new file <JSONFILE>
curl http://localhost:8080/__admin/files/<JSONFILE> \
 -X PUT --header 'Content-Type: application/json' --data @<JSONFILE>
# delete file <JSONFILE>
curl http://localhost:8080/__admin/files/<JSONFILE> -X DELETE

Example

Add mappings:

curl http://localhost:8080/__admin/mappings/import \
 -X POST --data '{
    "mappings": [
        {
            "request": {
                "method": "GET",
                "url": "/foo/1"
            },
            "response": {
                "status": 200,
                "bodyFileName": "foo1.json",
                "transformerParameters": {
                    "disableBodyFileTemplating": true
                },
                "headers": {
                    "Content-Type": "application/json"
                }
            }
        },
        {
            "request": {
                "method": "GET",
                "url": "/foo/2"
            },
            "response": {
                "status": 200,
                "bodyFileName": "foo2.json",
                "transformerParameters": {
                    "disableBodyFileTemplating": true
                },
                "headers": {
                    "Content-Type": "application/json"
                }
            }
        }
    ]
 }'

Add files:

curl http://localhost:8080/__admin/files/foo1.json \
 -X PUT --data '{
    "foo": "this is foo 1"
}'
curl http://localhost:8080/__admin/files/foo2.json \
 -X PUT --data '{
    "foo": "this is foo 2"
}'

Test:

curl http://localhost:8080/foo/1
curl http://localhost:8080/foo/2

Page Metadata

Source: wiremock.md Created: 2024-04-03T17:50:16+03:00 Changed: 2024-10-01T19:24:07+03:00