Console HTTP API tool
Project description
desman
Desman is console HTTP API requests tool. Desman uses .yml files to save request information. You can use enviroment files wich are also .yml files, to substitute variables to request.
Installation
Pip
pip install desman
Docker on Unix-like
Desman can be installed as .sh script running docker image:
sudo curl -L --fail https://raw.githubusercontent.com/kirillsulim/desman/master/scripts/run/run.sh -o /usr/local/bin/desman
sudo chmod +x /usr/local/bin/desman
Default tag in script is latest. If you want to fix specific version, change corresponding variable in script.
Docken on Windows
Desman can be installed as .ps1 script running docker image. Download script and set required permissions. Default tag in script is latest. If you want to fix specific version, change corresponding variable in script.
How to use
Simple request
Create .yml file with request description:
method: get
url: http://host.com/
then pass file path to desman
desman path/to/file.yml
and desman prints the body of response to console.
Request with parameters
Query parameters can be passed in url
method: get
url: http://host.com/?param=value
or be passed separately
method: get
url: http://host.com/
params:
param: value
Headers
Headers can be passed in headers field
method: get
url: http://host.com/
headers:
Authorization: Bearer some-auth-token
params:
param: value
Body
Body content can be passed in body field in request file
method: post
url: http://host.com/post
headers:
Authorization: Bearer some-auth-token
body: |
{
"stringField": "JSON value",
"nestedObject": {
"nestedField": [1, 2, 3]
}
}
Output parameters
The output of HTTP response is controlled by these optional paramters:
-s
print status of response-H
print heafers of response-b
print body of response
If none of these parameters are passed desman prints only body of response.
Using environments
All request files are Jinja2 templates.
# request.yml
method: post
url: http://{{server.host}}:{{server.port}}/post
headers:
Authorization: Bearer {{my-token}}
body: |
{
"stringField": "JSON value",
"nestedObject": {
"nestedField": [1, 2, 3]
}
}
Variables are substituted from enviroment .yml files
# env.yml
server:
host: host.com
port: 8080
my-token: "some-auth-token"
which are passed in optional parameter -e
desman -e env.yml request.yml
You can use many enviroment files. If they have similar fields desman will use the last occurence of value.
With many enviroment files
# env.yml
server:
host: host.com
port: 8080
my-token: "some-auth-token"
# new-token.yml
my-token: "new-token"
if both passed as
desman -e env.yml -e new-token.yml request.yml
request will be performed with Authorization: Bearer new-token
header.
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
Built Distribution
File details
Details for the file desman-1.0.5.tar.gz
.
File metadata
- Download URL: desman-1.0.5.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1400a0154db569420576d1e0c9bd78c66ebf78751f7b1a56ac25c20fbb8cc561 |
|
MD5 | 01d14f678d97b3864c97728f22f27a1d |
|
BLAKE2b-256 | b451916c8fb2d1edbecfcfcc7c5fe4e0141b58e75eaf8a9285745bd5464408c8 |
File details
Details for the file desman-1.0.5-py3-none-any.whl
.
File metadata
- Download URL: desman-1.0.5-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9c0070424a7b1a2702f9fda58aea5a71f1fd3719ce32340ff384378771caf89 |
|
MD5 | 94e880d5e88c3891dfdd6171fe81ba1f |
|
BLAKE2b-256 | ce4568a1db5174f66c202ff40041fc0734e236b96948fab524df5961e75b8b42 |