moclojer provides a template processor to make the endpoint’s return dynamic, making it easy for you to pass parameters by URI and query string into the endpoint’s response.
We use the Selmer template engine (is inspired by the Django template engine), making it possible to place conditions and rules within the template. The Selmer documentation shows examples of how to do this.
it is possible to use template rendering in:
endpoint.response.body
endpoint.response.external-body.path
understand what extended body is herepath-params
Parameter passed by the endpoint’s URI/URL.
We use the :field-name
signature to pass the dynamic parameter to the URL/URI.
To access this field in the template, simply use the following syntax: {{path-params.field-name}}
.
Sample:
- endpoint:
method: GET
path: /:field-name
response:
status: 200
headers:
Content-Type: application/json
body: >
{
"path-params": "{{path-params.field-name}}"
}
query-params
Parameter passed query string.
We use the ?field-name=dynamic field name
signature to pass the dynamic parameter to the query string, generally used in the http verb GET
.
To access this field in the template, simply use the following syntax: {{query-params.field-name}}
.
Sample:
- endpoint:
method: GET
path: /
response:
status: 200
headers:
Content-Type: application/json
body: >
{
"path-params": "{{query-params.field-name}}"
}
json-params
Parameter passed via JSON, generally used in the http verbs POST
, PUT
and DELETE
.
To access this field in the template, simply use the following syntax: {{json-params.field-name}}
.
Sample:
- endpoint:
method: POST
path: /
response:
status: 200
headers:
Content-Type: application/json
body: >
{
"json-params": "{{json-params.field-name}}"
}
Sending data:
curl -X POST http://.../
-H 'Content-Type: application/json'
-d '{"field-name":"dynamic field name"}'
headers
All parameters received in the request header are passed as template variables, making it possible to use the header data to create logic (verification) and/or put it in the return (in the body).
To access this field in the template, simply use the following syntax: {{headers.field-name}}
.
Sample:
- endpoint:
method: POST
path: /
response:
status: 200
headers:
Content-Type: application/json
body: >
{
"header-params": "{{headers.field-name}}"
}
Sending data:
curl -X POST http://.../
-H 'Content-Type: application/json'
-H 'Field-Name: dynamic field via header'
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close