semvec/pypi-packages huggingface dataset:
crest 0.0.1
CLI to access RESTful service
License: MIT
Keywords: restful cli

"Curl"REST API Command line client
==================================

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.

Features:
---------

- 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.

Sample usage:
-------------

With following `configuration <https://github.com/manishtomar/crest/blob/master/configs/raxid.py>`_ 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 <http://docs.rackspace.com/auth/api/v2.0/auth-client-devguide/content/QuickStart-000.html>`_
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 <https://github.com/manishtomar/crest/blob/master/usage.md>`_

Installation
------------
::

   pip install crest
   mkdir -p ~/.crest/generic_history  # for --history and --service to work

Thanks
------

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 <https://www.rackspace.com/blog/rackspaces-policy-on-contributing-to-open-source/>`_