Skip to main content

API watchdog

Project description

API Watchdog

Usage

api-watchdog discover path/to/test/files

Will output the abbreviated result of the tests to stdout.

api-watchdog discover --email path/to/test/files

Will email the results of the tests to the relevant addresses (as determined by the email_to= field of the test. Test results are grouped so that only one email per address is sent per run.

Whjen using the CLI, these environment variables must be set to email results

  • MAILGUN_API_URL
  • MAILGUN_API_TOKEN
  • MAILGUN_FROM
api-watchdog discover -o results_file.json path/to/test/files

Will serialize the WatchdogResultGroup object to the path specified by the -o flag.

Installation

API watchdog handles validation support through extra requirements. This means that to install it with TRAPI validation you invoke

pip install api-watchdog[TRAPI]

If you are using zsh you will run affoul of bracket globbing and should use

pip install 'api-watchdog[TRAPI]'

See this stackoverflow question for context.

Available extensions are:

  • TRAPI

If you do not want any validation support you can use the bare pip install api-watchdog command.

WatchdogTest format

The main way you'll interface with API Watchdog is through WatchdogTests. Each WatchdogTest has

  • name (str): The name of the test
  • target (url): The endpoint that the test targets
  • expectations (Array[Expectation]): A list of requirements that the response must meet for the test to pass.
  • payload (object): The json passed to the endpoint.

Expectation format

An Expectation describes where to find a piece of data in the response and what that piece of data should be in order for the test to pass. Each Expectation has

  • selector (jq program): A string describing a jq program that selects the one or more elements to test against
  • value (Any): a value to test equality against
  • validation_type (ValidationType): An API Watchdog validation type used to validate the value/response. The value/response will be implicitly converted to this type. For example, if you specify 'float' and the value is an integer it will be implicitly converted to a float.

The selector format is a string that is a jq program. This allows for rich selection capabilities. For example:

    {
      "selector": ".message.knowledge_graph.nodes[\"MONDO:0005148\"].name",
      "value": "type 2 diabetes mellitus",
      "validation_type": "string"
    },

Is an Expectation that checks if a node is present in the knowledge graph of a TRAPI response.

The possible validation types are

  • "string",
  • "int",
  • "float",
  • "object",
  • "bool",
  • "null",
  • "trapi.knowledge_graph",
  • "trapi.node",
  • "trapi.edge",
  • "trapi.query_graph",
  • "trapi.q_node",
  • "trapi.q_edge",
  • "trapi.query_constraint",
  • "trapi.result",
  • "trapi.node_binding",
  • "trapi.edge_binding",
  • "trapi.message",
  • "trapi.query",
  • "trapi.response",
  • "trapi.async_query",
  • "trapi.operation",
  • "trapi.workflow",
  • "trapi.attribute",
  • "trapi.biolink_entity",
  • "trapi.biolink_predicate",
  • "trapi.curie",
  • "trapi.log_entry",
  • "trapi.log_level",
  • "trapi.meta_edge",
  • "trapi.meta_node",
  • "trapi.meta_knowledge_graph",
  • "trapi.meta_attribute"

What it is

An API monitoring utility that aspires to support:

  • Validation
  • Continuous Integration
  • Multiple input and output formats
  • Test discovery / minimal configuration

What it is not

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

api_watchdog-0.5.3.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

api_watchdog-0.5.3-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file api_watchdog-0.5.3.tar.gz.

File metadata

  • Download URL: api_watchdog-0.5.3.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for api_watchdog-0.5.3.tar.gz
Algorithm Hash digest
SHA256 265f44cacf027a2e1554edd4551813627edb4fa93e81dd7e2cf37bf7ebd70d60
MD5 5cf73a612ede71534ffa415456759a95
BLAKE2b-256 dfef8cab600f648276b879a44ee96c9ee873326ae43a3526c2293ba3637d64e6

See more details on using hashes here.

File details

Details for the file api_watchdog-0.5.3-py3-none-any.whl.

File metadata

  • Download URL: api_watchdog-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for api_watchdog-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 89aab247217435b8a56ab70e1c163aacf35d0029cf955a35112aa86b87eeb090
MD5 ddfa5bafc13d9a1b4c50ae73e9f34588
BLAKE2b-256 9863c33cac3df355578b4b2d65fd5525ff5e6786fcf4bb7c7506882d5c85006d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page