Skip to content

An API client library and CLI written in Python. It's Postman for terminal lovers!

License

Notifications You must be signed in to change notification settings

augustawind/restcli

Repository files navigation

✨ restcli ✨

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.

Features

  • 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

CLI Usage

Command-line usage is documented in the Usage manual.

Documentation

Installation

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

Docker

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

Roadmap

Short-term

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

Long-term

Here are some longer-term feature concepts that may or may not get implemented.

License

This software is distributed under the Apache License, Version 2.0.

About

An API client library and CLI written in Python. It's Postman for terminal lovers!

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages