/adz

Command line interface for HTTP requests defined in yaml configuration file.

Primary LanguagePythonOtherNOASSERTION

ADZ

Command line interface for HTTP requests defined in yaml configuration file.

Install

pip install adz

Quick start

Having a yaml configuration file

endpoints:
  endpoint:
    request: GET https://httpbin.org/get
    headers:
      Content-Type: application/json

and running on command line

adz endpoint

will execute endpoint request defined in configuration file and print

GET https://httpbin.org/get
HTTP/1.1 200 OK
 • access-control-allow-credentials: true
 • access-control-allow-origin: *
 • content-encoding: gzip
 • content-type: application/json
 • date: Thu, 06 Jun 2019 06:06:06 GMT
 • referrer-policy: no-referrer-when-downgrade
 • server: nginx
 • x-content-type-options: nosniff
 • x-frame-options: DENY
 • x-xss-protection: 1; mode=block
 • content-length: 204
 • connection: keep-alive

{
    "args": {},
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip, deflate",
        "Content-Type": "application/json",
        "Host": "httpbin.org",
        "User-Agent": "python-httpx/0.7.1"
    },
    "url": "https://httpbin.org/get"
}

Configuration

For an example configuration look at docs/example.yml.

settings

  • colors: bool, default: true
    • control output print in colors
  • response: bool, default: true
    • control response body output
  • theme: str, default native
    • any theme name from here should work

variables

  • used to interpolate values in headers and urls
    • variable: abc applied on url: http://example.org/$variable results in http://example.org/abc
  • variable value starting with file:// is opened as file and loaded as string into variable

endpoints

  • description
  • method
    • http methods
  • url
  • request
    • method url e.g. get http://example.org
  • params
    • query string parameters
  • headers
  • json
    • json string
    • string starting with file:// is loaded as json file
  • data
    • json string
    • string starting with file:// is loaded as json file
  • cookies
  • files
    • path to a file: path/to/file.txt
    • file name and path: filename: path/to/file.txt

Configuration file

Expected configuration file names
  • adz.yaml or adz.yml
  • api.yaml or api.yml
  • rest.yaml or rest.yml
Expected locations
  • current location: .
  • user's home: ~/
  • .adz directory in user's home e.g. ~/.adz/

Configuration file path can also be set using environmental variable ADZ.

CLI

Run adz -h

commands

  • adz --config, adz -c

    • path to yaml configuration file
  • adz --details <endpoint>, adz -d <endpoint>

    • output details about endpoint from configuration file
  • adz --list, adz -l

    • list available endpoints in configuration file
  • adz --output, adz -o

    • output processed configuration file as json
  • adz --settings, adz -s

    • output settings in configuration file
  • adz --var name=value, adz -v name=value

    • set or override variables in configuration
  • adz --colors, adz --no-colors

    • control output print in colors
  • adz --response, adz --no-response

    • control response body output

License

ADZ is licensed under a three clause BSD License. Full license text can be found here.