Skip to main content

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.

Metadata

Release files for desman 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for desman 1.0.5
File Size Uploaded Provenance Actions
desman-1.0.5.tar.gz 3.7 kB Without provenance Details for desman-1.0.5.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for desman 1.0.5
File Interpreter ABI Platform Actions
desman-1.0.5-py3-none-any.whl Python 3 none any Details for desman-1.0.5-py3-none-any.whl

Total release size: 8.2 kB

Release files / desman-1.0.5.tar.gz

Download URL desman-1.0.5.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1400a0154db569420576d1e0c9bd78c66ebf78751f7b1a56ac25c20fbb8cc561
BLAKE2b-256 checksum
How to use checksums
b451916c8fb2d1edbecfcfcc7c5fe4e0141b58e75eaf8a9285745bd5464408c8
Upload date
Uploaded using Trusted Publishing?
What is 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

Release files / desman-1.0.5-py3-none-any.whl

Download URL desman-1.0.5-py3-none-any.whl
Size 4.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9c0070424a7b1a2702f9fda58aea5a71f1fd3719ce32340ff384378771caf89
BLAKE2b-256 checksum
How to use checksums
ce4568a1db5174f66c202ff40041fc0734e236b96948fab524df5961e75b8b42
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for desman 1.0.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page