Explore APIs from your console with API Buddy


Keywords
api_buddy, api-buddy, api, apibuddy, cli, oauth2, terminal
License
MIT
Install
pip install api-buddy==0.4.0

Documentation

API Buddy

Build Status PyPI version

Demo

Right now, only OAuth2 authentication is supported. It's the most common, and current gold standard for security best practices. Also most APIs use it. That said, I have no beef with all the APIs out there using something else, so feel free to open a ticket if you want something else supported. 🎟

You can also always manually set headers.

Installation

As long as you have python 3.7 or higher (I recommend using pyenv), just:

pip install api-buddy

Usage

First, specify the API you're exploring in your preferences

# ~/.api-buddy.yaml
api_url: https://some.api.com

Then it's as easy as:

api get some-endpoint
=> 200
{
  "look": "I haz data",
  "thx": "API Buddy"
}

HTTP Method defaults to get:

api this-endpoint  # same as first example

You can add query params in key=val format:

api get \
  my/favorite/endpoint \
  first_name=cosmo \
  last_name=kramer

You can also add request body data in JSON format:

api post \
  some-endpoint \
  '{"id": 1, "field": "value"}'

🤔 Note the single-quotes. You can expand this accross multiple lines:

api post \
  some-endpoint \
  '{
     "id": 1,
     "field": "value"
  }'

Preferences 👉

Arguments

  • http_method: (optional, default=get) The HTTP method to use in your request.
    • It should be one of:
      • get
      • post
      • patch
      • put
      • delete
  • endpoint: (required) The relative path to an API endpoint.
    • AKA you don't need to type the base api url again here.
  • params: (optional) A list of key=val query params
  • data: (optional) A JSON string of requets body data.
    • You can't use this with get because HTTP.

Options

  • -h, --help: Show the help message
  • -v, --version: Show the installed version

Development

Requires:

Steps to start working:

  • Build and create the local venv with bin/setup
  • Make sure everything works with bin/test
  • Try the local cli with poetry run api --help
  • Find other management commands with bin/list