How to use the WireMock CLI to run your Mock APIs locally with the same capabilities as on WireMock Cloud
%LOCALAPPDATA%\wiremock-cli
(typically C:\Users\{username}\AppData\Local\wiremock-cli
)/Users/{username}/.config/wiremock-cli
$XDG_CONFIG_HOME/wiremock-cli
(typically /home/{username}/.config/wiremock-cli
)https://app.wiremock.cloud/mock-apis/33eye3l9/stubs/1e0d7dc0-06a0-49a2-81a7-f5d6a40bfa3d
,
the ID is 33eye3l9
.
This will create a .wiremock
directory in the current working dir, and populate it with the necessary files to be able
to run the identified Mock API.
You can pass a --wiremock-dir
argument to override the default .wiremock
directory.
Inside the .wiremock
directory you will find the WireMock environment file which contains all the Mock APIs you have
pulled down. This is a yaml
file in the following format:
type
field specifies the type of the Mock API you have just pulled down. This field allows the 4 Mock API types
supported by WireMock Cloud:
port
field specifies the port that the local mock api will run on.
The path
field specifies the path to the Mock API directory. This is where all the files relating to the Mock API
will be stored. If the Mock API contains any stubs, they will be stored in the stub-mappings.yaml
file along with
the OpenAPI specification if the Mock API is a REST Mock API and the GraphQL schema if the Mock API is a GraphQL Mock API.
You can pull down multiple Mock APIs at once by running the pull mock-api
command multiple times.
You can then run the Mock API as so:
.wiremock
directory. A table will be printed showing you
which port is being used for which API.
(Naturally you can pass the same --wiremock-dir
argument to override the default .wiremock
directory.)
pull mock-api
command
again. This will overwrite any changes you have made locally. To do this you can run the same command as beforepull mock-api
command specifying the <service-id>
from your local WireMock environment file:
For example, if your WireMock environment file contains the following:
<service-id>
:
pull mock-api
command without any mock API Id or service Id and specifying the --all
flag:
wiremock/wiremock-cli
. By
default, it executes the run
command, but in order for the run
command to be able to operate you must mount your
config directory to /etc/wiremock-cli
and the working directory containing your mock APIs to /work
.
You will also need to publish the appropriate ports
for the services you are running.
Here is a typical example on Linux or macOs when running two Mock APIs: