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 installWith setup.py but allow edits to the files under restcli/ and reflect
those changes without having to reinstall restcli:
$ python setup.py developIf 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 workflowAssuming 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:barHere'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.