A generic CLI to access any RESTful service with a little bit of configuration. Think of it as something in between curl and proper CLI.
https://github.com/manishtomar/crest/blob/master/usage.md
- Replace parts of JSON request body while sending the request using simple
object.property[index]
notation - Print only part of JSON response using above described notation
- History: Previously sent request are stored and can be resent using
--last
option - Templates: Store preset requests of a particular URL and send them using
--template
option - Service config: Store common headers, URL prefix, preset requests of a particular service in config
It has options similar to curl to fetch and provide request body. -d, -H
and -d
are
same as curl. -X
is changed to -m
. Currently, the tool uses requests
to send
HTTP requests. In future, it may just be wrapper on top of curl delegating all options to
curl.
With following configuration in ~/.crest/raxid/config.py
:
tokens_request = { "auth": { "passwordCredentials":{ "username":"REPLACE_USERNAME", "password":"REPLACE_PASSWORD" } } } config = { "name": "raxid", "description": "Rackspace Identity Service", "uriprefix": "https://identity.api.rackspacecloud.com/v2.0", "headers": { "accept": "application/json", "content-type": "application/json" }, "resources": { "tokens/?$": { "templates": {"default": tokens_request}, "aliases": { "username": "auth.passwordCredentials.username", "password": "auth.passwordCredentials.password", }, "help": "Authenticate via username/password" } } }
one can authenticate to Rackspace Identity Service and extract token using following command:
crest -s raxid tokens -m post -t -r username=myuname -r password=mypwd -o access.token.id
For more details check usage. NOTE: Be careful as this will store request including password in history
pip install crest mkdir -p ~/.crest/generic_history # for --history and --service to work
Thanks to Rackspace for having a culture of hacking on side projects and allowing me to work on this, and having an excellent open source employee contribution policy