Skip to content

akamai/httpie-edgegrid

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

httpie-edgegrid

EdgeGrid plugin for HTTPie.

Installation

To install from sources:

$ python setup.py install

When using python 3 on Mac, replace python with python3:

$ python3 setup.py install

If you have problems installing from sources, you could use pip:

$ pip install httpie-edgegrid

Running tests in virtual environment

To test in a virtual environment, run:

$ python3 -m venv venv
$ . venv/bin/activate
$ pip install -r requirements_dev.txt
$ python -m unittest discover

Usage

The EdgeGrid plugin relies on a .edgerc credentials file that needs to be created in your home directory and organized by [section] following the format below. Each [section] can contain a different credentials set allowing you to store all of your credentials in a single .edgerc file.

[default]
client_secret = xxxx
host = xxxx # Note, don't include the https:// here
access_token = xxxx
client_token = xxxx
max-body = xxxx
[section1]
client_secret = xxxx
host = xxxx # Note, don't include the https:// here
access_token = xxxx
client_token = xxxx
max-body = xxxx

Once you have the credentials set up, here is an example of what an Akamai OPEN API call would look like:

% http --auth-type edgegrid -a <section_name>: :/<api_endpoint>

Example

Making the diagnostic-tools API [locations]{.title-ref} call:

% http --auth-type edgegrid -a default: :/edge-diagnostics/v1/edge-locations

Parameters

--edgegrid-config

Path to `.edgerc` credentials file (optional, defaults to `~/.edgerc`)

Environment variables

RC_PATH

Path to `.edgerc` credentials file (optional, equivalent to the `--edgegrid-config` parameter)

Troubleshooting

MacOS Sierra users have reported the error "http: error: argument --auth-type/-A: invalid choice: 'edgegrid' (choose from 'basic', 'digest')" after installation. Try installing using pip instead.

The error "ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer" requires you to install an updated version of `pyOpenSSL`:

$ pip install --ignore-installed pyOpenSSL

Since v0.9.4 of httpie the Mac homebrew package is build with python3. If you get an error for "ImportError: No module named cryptography" then probably you installed httpie-edgegrid with python2.7 (unsupported). To explicitly install with python3 use:

$ sudo python3 setup.py install

Or with pip3:

$ sudo pip3 install httpie-edgegrid

Advisories

Starting with HTTPie version 2.3.0 uploads are streamed, causing an issue posting JSON payloads as those don't include a content-length causing an error with the Edgegrid authentication libraries. See Issue #49 for more details