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
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
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
Source: wiremock.md Created: 2024-04-03T17:50:16+03:00 Changed: 2024-10-01T19:24:07+03:00