JsonApiCondition

The JsonApiCondition works by sending an HTTPS GET request to a specified JSON API endpoint, extracting relevant data from the response using a JSONPatharrow-up-right query, and then comparing the extracted value against an expected result.

It is composed of the following properties:

  • endpoint: the HTTPS URI for the JSON API endpoint that will be queried, e.g.https://api.example.com/user/status

  • parameters(Optional): a key-value mapping of parameter names and values to pass as part of the HTTPS GET request. These parameters will be appended to the URL as query string parameters.

  • query(Optional): a JSONPath query used to extract specific data from the JSON response.

  • authorizationToken (Optional): A token that will be included in the HTTPS Authorization header. It enables the use of endpoints that require OAuth/JWT authorization.

  • authorizationType (Optional): If an authorizationToken is specified, the type specifies the request header information to specify. Can be Bearer, Basic, or X-API-Key.

  • returnValueTest: the test to validate the value extracted by the JSONPath query.

Error Handling

  • If the HTTPS response does not return a status code of 200, the condition will fail automatically, and access will be denied.

  • If the JSONPath query is provided but cannot properly extract the desired value, the condition will fail, resulting in access being denied.

  • If an invalid authorizationToken is provided, the call to the API will fail, causing the condition to fail and access to be denied.

Use Cases

Any JSON REST API endpoint including:

  • Social media APIs e.g. Twitter, Facebook

  • Communication application APIs e.g. Discord, Telegram

  • Oracle endpoints e.g. prices, weather etc.

Example

The condition would be satisfied if the API endpoint returned something analogous to the following:

Development References

Last updated