Section – Rewrite Response Body (JSON only)

Airlock Gateway provides a JSON content rewriter for values in JSON documents.

  • Recommended use:
  • Use JSONPath (XPath for JSON) and content pattern (which work as regular expressions) to rewrite any URLs of the JSON content.
Section - Rewrite Response Body (JSON only)

Content pattern as rewrite variables

Rewrite rules may contain rewrite variables for URLs. This can be achieved by using a content pattern, i.e., (?<URL>).

The type specifier ?<URL> right after the opening parenthesis indicates a URL. If URL encryption is enabled, this URL will also be encrypted.

Examples:

JSONPath

Content Pattern

Replace

$..url
(?<URL>.*)
$1
$..url
^(https?://)%BACKENDHOST%/%BACKENDPATH%(/.*)?$
$1%ENTRYHOST%/%ENTRYPATH%$2
$.data.services[:].name

path

location

JSON Path example

To define which field to rewrite, JSON Path syntax is used.

JSON Document:

  { 
    "data": { 
        "services": [ 
            { 
                "name": "path1", 
                "url": "http://backend-server/path1" 
            }, 
            { 
                "name": "path2", 
                "url": "http://backend-server/path2" 
            } 
        ] 
    } 
  }

JSON Paths:

  * $.data.services[0].name 
    selects the value "path1" 
  * $.*.services[0].name 
    selects the value "path1" 
  * $.data.services[:].name 
    selects the values ["path1", "path2"] 
  * $..url 
    selects all URLs