callRest

callRest

This is a custom Nunjucks filter that makes an http(s) call to an external REST API. It operates on a string representing the REST API endpoint to call, and it returns the response as JSON (unless customized using the noJSON parameter).

To make a call to any Jira Cloud REST API on the current Jira instance then use callJira() filter

You are viewing the documentation for Jira Cloud.

On this page:

On this page:

 

Applies to

A string representing the REST API endpoint to call. For example "https://reqres.in/api/users". Note it can also be another Jira instance like https://example.atlassian.net/

Parameters

Note the use of named parameters instead of positional parameters because of the number of parameters and their optional nature.

Named parameter

Description

Examples

Named parameter

Description

Examples

verb

Indicates the HTTP verb such as GET (to get information), PUT (to update existing information), POST (to post or create a new item), DELETE (to delete an item).

The default is GET.

The verb is not case-sensitive.

  • {{ "https://reqres.in/api/users" | callRest() | dump(2)}} dumps all the users in a pretty JSON format

  • {{ "https://reqres.in/api/users/1" | callRest( verb="PUT", body= { "data": [{ "first_name": "David" }] }) | dump(2)}}

updates the first name of the user whose id is 1

  • {{ "https://reqres.in/api/users" | callRest( verb="post", body={ "name": "morpheus", "job": "leader" }) }}

creates a new user in the rest API

  • {{ "https://reqres.in/api/users/12" | callRest(verb="delete") | dump(2)}} deletes the user with id 12

params

Indicates the parameters to be passed to replace placeholders in the rest-url. It is a hash of key and values. Any instance of ":key" in the rest-url is replaced with its value found in the hash under "key". The value will be Uri-Encoded.

The default is no param

{{ "https://reqres.in/api/users/:id" | callRest(params={"id":"11"}) | dump(2)}} dumps the information of the user with id 11.

query

Indicates the query parameters to be added to the http call. It is a hash of key and values. The values must be scalar and will be encoded appropriately. This is used to return a subset of fields.

The default is no query param.

{{ "https://reqres.in/api/users" | callRest(verb= "GET",query={"id":"2"}) | dump(2)}} will call https://reqres.in/api/users?id=2 and dump the information of the user with the id 2.

body

Indicates the body to pass to PUT and POST calls. It is an object that will be automatically converted to JSON.

The default is no body.

{{ "https://reqres.in/api/users" | callRest( verb="post", body={ "name": "morpheus", "job": "leader" }) }}

creates a new user in the API with the information provided in the body

options

Indicates the options passed to the "request" call. Often this is used to pass authentication information (see the example at right) but many other options are supported (see this section for the entire list).

The default is no options.

 

The following code dumps the data for the issue with key TEST-1, operating with the provided authentication information set in auth within options.

To send multiple parameters using multipart/form-data, use the form option. This is particularly useful when there are too many parameters to include as query parameters.

noJSON

Controls the response format. If true, the response body will be returned as is instead of being parsed as JSON. Also, the request body will not be automatically converted to JSON.

The default is false

dumps the response as plain text.

dontFail

If true, when the REST call returns an error, instead of throwing an exception, the error will be returned as an object containing an _error and/or a _statusCode field.

  • {{ "https://httpstat.us/404" | callRest(dontFail=true) | dump(2)}} returns:

fixedIP

If true, the REST call is made from a fixed static IP address, which users can then whitelist for security purposes.

The following IP addresses are used:

  • 34.232.217.139

  • 18.213.181.255

The default is false

Examples

Here are a few examples using the callRest filter

Get the information from an API

Gets the information of a user with id 2 and outputs the information in a pretty JSON format with 2 spaces indentation.

Get issue information from another Jira instance

Using this filter you can make calls to another Jira instance. You will need to authenticate using the username (one used to log in to the instance) and password (the API token created for the destination instance).

dumps the details of the issue with key TEST-1 using the provided authentication information.

Convert the amount in a custom field to a specific currency

returns the amount in the custom field in INR currency.

Use a callRest response in a template

In scenarios where the response from a REST API needs to be used in a template, use the {% set %} tag. For example:

Â