A command-line interface to the Postman API.
Controls the Postman API
Usage:
postmanctl [command]
Available Commands:
config Configure access to the Postman API.
create Create new Postman resources.
delete Delete existing Postman resources.
describe Describe an entity in the Postman API
fork Create a fork of a Postman resource.
get Retrieve Postman resources.
help Help about any command
merge Merge a fork of a Postman resource.
replace Replace existing Postman resources.
run Execute runnable Postman resources.
version Print version information for postmanctl.
Flags:
--config string config file (default is $HOME/.postmanctl.yaml)
--context string context to use, overrides the current context in the config file
-h, --help help for postmanctl
Use "postmanctl [command] --help" for more information about a command.
Binaries for Windows, MacOS, and Linux can be downloaded from the GitHub releases page: https://github.com/kevinswiber/postmanctl/releases.
Homebrew users can install postmanctl
from the kevinswiber/postmanctl
tap:
$ brew install kevinswiber/postmanctl/postmanctl
go get
$ go get -u github.com/kevinswiber/postmanctl/cmd/postmanctl
Download and install from source.
$ git clone https://github.com/kevinswiber/postmanctl.git && make install
To start using postmanctl
, configure access to your Postman account.
$ postmanctl config set-context <context-name>
You'll need a Postman API Key to add to your configuration, which can be generated here: https://go.postman.co/settings/me/api-keys.
Example:
$ postmanctl config set-context personal
Postman API Key:
config file written to $HOME/.postmanctl.yaml
You're now ready to start using postmanctl
!
Now that access to the Postman API has been configured, you can start playing around with different commands.
Fetch a list of Postman collections.
$ postmanctl get collections
UID NAME
10354132-0a428e3b-4112-46ee-b57a-d2f3e1b7c860 httpbin
10354132-22f0b9af-83e6-4f4a-b14a-879342f3e582 Using data files
10354132-e02524dc-54d5-49d7-9ef8-121209316083 Demo API
$ postmanctl describe collection 10354132-e02524dc-54d5-49d7-9ef8-121209316083
Info:
ID: e02524dc-54d5-49d7-9ef8-121209316083
Name: Demo API
Schema: https://schema.getpostman.com/json/collection/v2.1.0/collection.json
Scripts:
PreRequest: true
Test: true
Variables: baseUrl
Items:
.
└── Weather Forecast
├── Get Weather Forecast (scripts: prerequest,test)
└── Create Weather Forecast (scripts: prerequest,test)
You can create resources by piping in a JSON object describing that resource or by passing in a file with the --filename
flag.
$ cat << EOF | postmanctl create mock
{
"name": "demo-api-mock",
"collection": "10354132-e02524dc-54d5-49d7-9ef8-121209316083",
"environment": "10354132-84e7635f-9b30-427f-bead-27901790659e"
}
EOF
10354132-588394be-63e5-4194-828c-4439fee85ca8
The ID of the newly created resource is returned.
You can check the new resource by running:
$ postmanctl describe mock 10354132-588394be-63e5-4194-828c-4439fee85ca8
Now that we have a mock server, let's run a command to get its public URL.
$ postmanctl get mock 10354132-588394be-63e5-4194-828c-4439fee85ca8 -o jsonpath="{[].mockUrl}"
https://588394be-63e5-4194-828c-4439fee85ca8.mock.pstmn.io
Now that we have our mock server URL, we can start making requests.
$ curl https://588394be-63e5-4194-828c-4439fee85ca8.mock.pstmn.io/WeatherForecast
[
{
"date": "<dateTime>",
"temperatureC": "<integer>",
"temperatureF": "<integer>",
"summary": "<string>"
},
{
"date": "<dateTime>",
"temperatureC": "<integer>",
"temperatureF": "<integer>",
"summary": "<string>"
}
]%
Feel free to peruse the auto-generated CLI docs to learn more about the commands or just explore with postmanctl <command> <subcommand> --help
.
JSONPath syntax is borrowed from the implementation used by the Kubernetes CLI. You can find more documentation on that in the kubectl
documentation: https://kubernetes.io/docs/reference/kubectl/jsonpath/.
Apache License 2.0 (Apache-2.0)
Copyright © 2020 Kevin Swiber kswiber@gmail.com