See tutorials/getting-started/110-Template.yaml.
When thecontentType is a JSON variant (e.g., application/json), the engine automatically escapes all inserted values. For example, in the JSON templating example, executing curl "localhost:2000/?answer=20" returns { "answer" : "20" }. The quotes surrounding the value 20 are added by the auto-escaping mechanism to ensure the output remains a valid string. This feature significantly mitigates security risks by preventing inadvertent JSON injection attacks.Example Configuration
api:
port: 2000
flow:
- request:
- template:
contentType: application/json
src: |
{
"name": ${params.name},
"age": ${params.age}
}
- response:
- template:
location: template.xml
- return: {}
api:
port: 2000
flow:
- request:
- template:
contentType: application/json
src: |
{
"name": ${params.name},
"age": ${params.age}
}
- response:
- template:
location: template.xml
- return: {}
Syntax
template:
charset: <string>
contentType: <string>
location: <string>
pretty: <boolean>
src: <string>template: charset: <string> contentType: <string> location: <string> pretty: <boolean> src: <string>
Attributes
| Name | Required | Default | Description | Examples |
|---|---|---|---|---|
| charset | false | UTF-8 | Encoding of the template text. | UTF-16, iso-8859-1 |
| contentType | false | text/plain | Content-Type of the generated body content. | application/json |
| location | false | N/A | A file or URL location where the content that should be set as body could be found | conf/body.txt |
| pretty | false | false | Format the content of the template. Depending on the contentType the a formatter for JSON, XML or plain text is used. | true |
| src | false | - | - | - |