restcli is a terminal web API client written in Python. It draws inspiration from Postman and HTTPie, and offers some of the best features of both.
- save requests as YAML files
- scripting
- parameterized requests using Jinja2 templating
- expressive commandline syntax, inspired by HTTPie
- first-class JSON support
- interactive prompt with autocomplete
- colored output
Command-line usage is documented in the Usage manual.
With pip
:
$ pip install -r requirements.txt
$ pip install .
With setup.py
:
$ python setup.py install
With setup.py
but allow edits to the files under restcli/
and reflect
those changes without having to reinstall restcli
:
$ python setup.py develop
If you have invoke
, you can use it for running the tests and installation.
If not, you can install it with pip install invoke
.
$ invoke test # Run the tests
$ invoke install # Install it
$ invoke build # Run the whole build workflow
Assuming Docker is installed, restcli can run inside a container. To build the Docker container, run the following from the project root:
$ docker build -t restcli .
Then you can run commands from within the container:
$ docker run -it restcli -c foobar.yaml run foo bar
$ docker run -it restcli --save -c api.yaml -e env.yaml env foo:bar
Here's what we have in store for the foreseeable future.
- autocomplete Group and Request names in the command prompt
- support for other formats (plaintext, forms, file uploads)
- convert to/from Postman collections
Here are some longer-term feature concepts that may or may not get implemented.
- full screen terminal UI via python_prompt_toolkit
- in-app request editor (perhaps using pyvim)
This software is distributed under the Apache License, Version 2.0.