Interface
Interface describes the structure of output bundles and specifies the parameters which are seen in the next modules.
Interface uses the syntax of the parameters.
ParametersArrays and Collections
Arrays and Collections use the syntax spec
to specify their structure.
{
"name": "emails",
"spec": {
"type": "email",
"label": "Email"
},
"type": "array",
"label": "Emails"
}
Arrays and collections with unknown structure
When you have a parameter that is type Collection or Array but you don't know the structure inside, you need to specify the structure like this:
{
"name": "custom_fields",
"type": "array",
"label": "Custom Fields"
}
This way, when the service returns any parameter inside the Collection or Array, the user will be able to map them.
Example

Interface Generator
Both the web interface and Visual Studio Code have interface generator tool, which helps with generating the interface.
Run a module for which you want to generate an interface, then in the panel with the output, click on the button circled below and choose Download output bundles option.

Then, a new panel will appear, with the original response from the endpoint. Copy the text to your clipboard.

[
{
"name": "id",
"type": "uinteger",
"label": "User ID"
}
]

The generated code still needs to be reviewed!
Make sure the generated type for dates is date.
The label must be grammatically correct, use Title case and uppercase for abbreviations such as UID, URL, etc.
In the case of Search modules, you will need to delete the pagination data __IMTLENGTH__
and __IMTINDEX__
.
Dynamic Interface Using RPC
You can use RPC to generate the interface dynamically.
"rpc://nameOfTheRPC"
You can also define RPC to generate just a part of the interface.
[
{
"name": "id",
"type": "uinteger",
"label": "User ID"
},
"rpc://nameOfTheRPC"
]
You can access module parameters in remote procedures via {{parameters.foo}}
syntax.
Last updated