RESTFul HTTP command-line interface and shell
Project description
USAGE: resht HTTP-VERB PATH [API_PARAMS] [ARGUMENTS]
JSON-oriented REST API client with shell mode for session-based flows.
EXAMPLES:
---------------------------------------------------------------------------
$ resht -u https://example.com/api get foo x=1
{...}
$ resht -u https://example.com/api/
> get site/foo.com -v
> post site -j domain=foo.com
> cd site/foo.com
> get ./
ARGUMENTS
---------------------------------------------------------------------------
REQUEST ARGS
-B, --basic USER:PASS HTTP basic authentication.
-d, --data DATA Set request body to the string given; cannot be
used with API params or --json
-H, --header HEADER HTTP header (e.g. 'Foo: bar', repeatable)
-I, --insecure Do not valid SSL certificates (dangerous!)
-Q, --query QUERY_DATA Extra query data to merge
(e.g. "foo=bar&food=yummy", repeatable).
-f, --form Override default of sending JSON data
-j, --json STRING Merge JSON-encoded string into API params (repeatable)
-u, --url URL Base URL for API requests (default: https://localhost/).
MISC ARGS
-h, --help This information.
-s, --shell Start shell mode; run initial API
-v, --verbose Print verbose debugging info to stderr.
OUTPUT ARGS:
-c, --color Color formatted JSON responses (default=True).
-C, --no-color Do not color formatted JSON responses.
-r, --raw Don't format response data; return raw response.
-x, --extract PATH Parse JSON to return specific data; may be repeated.
-X, --exclude PATH Exclude specified path from JSON data; may be repeated.
> FILE Write API response to specified file.
>> FILE Append API response to specified file.
API PARAMS
---------------------------------------------------------------------------
API parameters are defined through a terse dotted notation making nested
objects easy to quickly define. Non-boolean values are assigned using
the delimiter "=" (string) or ":=" (JSON encoded).
Arrays must be created using ":=" or using "-d|--data".
BOOLEANS:
foo {"foo": true}
foo.bar {"foo": {"bar": true}}
^foo {"foo": false}
!foo {"foo": false}
STRINGS:
foo=bar {"foo": "bar"}
foo.bar=3 foo.bard=abc {"foo": {"bar": "3", "bard": "abc"}}
OTHER (RAW JSON):
foo:='{"bar":3}' {"foo": {"bar": 3}}
foo.bar:=3.14 {"foo": {"bar": 3.14}}
JSON PATHS (-x|--extract, -X|--exclude)
---------------------------------------------------------------------------
The JSON data can be filtered based on index, key matches, ranges, etc.
Arrays:
By Index:
- 'foo/0', 'foo/2', 'foo/-1' (last item)
By Range:
- 'foo/:' or 'foo/*' (all items within the array),
- 'foo/2:', 'foo/:2', 'foo/1:5', 'foo/-2:' (last 2),
- 'foo/:-2' (all but last two),
- 'foo/1:-3' (between first and up until 3rd to last)
Dictionaries:
Regular Expressions:
- 'foo/b..?r' = foo/bar, foo/beer
- 'foo/bar/.*[pP]assw(or)?d' == anything within foo/bar like a password
SHELL COMMANDS
---------------------------------------------------------------------------
HTTP_VERB URL [PARAMS] Perform request
cd Change the base URL (e.g. "cd customers/8; cd ../9").
help This information.
quit Adios! (quit shell).
headers [key=val, -key] List, set, or clear headers.
set [PARAMS] List or set configuration options.
sh EXPR Run a BASH shell command.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
resht-0.9.8.tar.gz
(26.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
resht-0.9.8-py3-none-any.whl
(29.7 kB
view details)
File details
Details for the file resht-0.9.8.tar.gz.
File metadata
- Download URL: resht-0.9.8.tar.gz
- Upload date:
- Size: 26.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b77c4d72ac05d336aa60fcb536379fb409344ca2d5811eb2e6f5308c5b1dc2f
|
|
| MD5 |
268e8e9f05ea714dfcaf604fe0c3ba17
|
|
| BLAKE2b-256 |
bb8294468547893765130022749b2e8c63a30d84ee2d7e2c5757f1ecf85ffe79
|
File details
Details for the file resht-0.9.8-py3-none-any.whl.
File metadata
- Download URL: resht-0.9.8-py3-none-any.whl
- Upload date:
- Size: 29.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daf8c4fdcb40a651e4348ac5cb4d3295bb736631c96216af2b6452c0b383009c
|
|
| MD5 |
b37fd988d83cb38ccb45c0efa0ebc64f
|
|
| BLAKE2b-256 |
e6e36ee544b9e13e5a1cceb4e25dff6b08d873a8addbeabda95c3c7a89c9f25f
|