Lisp API (deprecated)
- lisp/getspecificationget the specification which is distributed in form of a test suite
- lisp/evallispevaluate lisp expression within the provided execution context (
data
orresource
).
lisp/get-specification
Params:
Param | Description | Type | required? | default |
---|---|---|---|---|
runtime | Filter \[client or server]-only tests or get all tests | zenbox/string | no | client |
Request:
POST /rpc?
method: lisp/get-specification
params:
runtime: server
Response:
result:
- spec-edn: ... "complete zen specification in ZEN format"
fn-spec: ... "zen specification of a test function"
test-suite: ... "complete test suite with AST expressions in JSON format"
Server responds with HTTP 422 Unprocessable Entity
if wrong params are provided.
lisp/eval-lisp
Some expressions are runtime specific. See language specification for more details.
Params:
Param | Description | Type | required? |
---|---|---|---|
expr | Lisp expression | zen/string | yes |
resource | Resource the lisp expression refers to | zenbox/Resource | no |
data | Data the lisp expression refers to | zen/map | no |
The lisp expression expr
can be used to retrieve data directly from the provided data
map.
Request:
POST /rpc?
method: lisp/eval-lisp
params:
expr: (str "Hello " (get-in [:name 0 :given 0]))
data:
name:
- given:
- John
Response:
result: Hello John
Or the expression expr
can be used for example to retrieve data via sql
function for a given resource
.
The
sql
functions are specified forbackend
lisp runtime only.
Request:
POST /rpc?
method: lisp/eval-lisp
params:
expr: (sql {:select :* :from :patient})
resource:
id: p1
resourceType: Patient
Response:
result:
address: ...
name:
- given:
- Morgan
family: James
birthDate: '1952-01-01'
resourceType: Patient
id: p1
identifier: ...
gender: male
maritalStatus: ...
The expression expr
can also be used to grab data from a particular Resource.
Request:
POST /rpc?
method: lisp/eval-lisp
params:
expr: (str "Hello Mr. " (get-in [:name 0 :given 0]))
resource:
id: p1
resourceType: Patient
Response:
result: Hello Mr. Morgan
Server responds with HTTP 422 Unprocessable Entity
if wrong params provided or with HTTP 500 Internal Server Error
if wrong resourceType
provided.
\\