Skip to content
Jeff Olajos edited this page Nov 8, 2022 · 52 revisions

logo

Overview

The GET datasource widget is used to retrieve data from an external HTTP data source using the standard HTTP GET method. The widget is executed by using the id.start event where is the id of the GET widget and/or by setting autoexecute="true". If autoexecute="true", the widget fires automatically when the TEMPLATE is first opened. Data returned from the call can be bound using the standard Dot Notation binding syntax. GET widgets can have multiple TRANSFORM widgets to selectively transform data which is returned from the call. Data can be returned as JSON or XML (default).

Usage

The GET widget is used to return a data package to be used and bound to within the [FRAMEWORK]. Curly braces {} are used to denote bindable fields that return a value.

Ideals:

  • To return bindable data to drive the the template.
  • To populate populable widgets like [LIST] or [SELECT].

Restrictions:

  • GET must return valid xml or json.

Attributes

Name Type Default Description Req
id string null The id of the widget used for databinding.
url string null The url the data is sent to.
type string null replace, lifo, fifo, append, prepend. Defines the data aggregation strategy for data returned from initial and subsequent calls. replace (default) replaces all data after each subsequent call. lifo (last in first out), fifo (first in first out), append and prepend are all used in conjunction with the maxrecords attribute
maxrecords int 10000 The maximum number of data rows
root string transparent The root tag that the broker will look in data returned. This can be a nested field
autoexecute bool true If the widget will fire when the template is first opened or on url change
autoquery int(s,m,h) null If set the broker fires on a timer set by the autoquery
ttl int(s,m,h) 0s Time to Live caches data in the local persistent HIVE database for the period specified. This saves requerying data that changes infrequently
tti int(s,m,h) 5s The time the Datasources status will stay as anything but idle.
onsuccess string/Event null The string of events the broker will execute upon a successful query.
onfail string/Event null The string of events the broker will execute upon a failed query.

Events

Name Type Description
start() Fires the databroker. Envoked in any EVENT string using <id>.start()
stop() Stops the databroker. Envoked in any EVENT string using <id>.stop()
clear() Clears the databroker. Envoked in any EVENT string using <id>.clear()

Properties

Name Type Default Description Req
rowcount int 0 The number of records in the data bindable
status string idle The status of the broker, returns error, success or idle.
statusmessage string null Returns a status message (usually from the response on an exception ).
statuscode string null Returns the http status code.
httpstatus string null Returns the generic message associated with the http status code.

Headers

The default HTTP headers for POST, PUT, GET and DELETE are as follows:

  • age = '0';
  • content-encoding= 'utf8';
  • content-type = "application/xml";
  • authorization = JWT TOKEN

If the <HEADERS> element is specified, the defaults headers are omitted and replaced with those specified.

Example #1

This example demonsstartes how to omit all headers

<HEADERS/>
Example #2

Theis example demonstrates sending a single content-type header and authorization header set to the current Json Web Token

<HEADERS>
  <HEADER id="content-type" value="application/json"/>
  <HEADER id="authorization" value="Bearer {SYSTEM.jwt}"/>
</HEADERS>

Examples

Example #1
<GET id="UserData" url="api/users/" autoexecute="true" tti="25s" ttl="5m" root="USER"/>

<TEXT label="{UserData.username}"/>
<TEXT label="{UserData.age}"/>
<TEXT label="{UserData.gender}"/>
fig. a

A GET with text bound to the data packet fields(#figb).

<USERS>
	<USER>
		<username>TheOlajos</username>
		<age>27</age>
		<gender>Male</gender>
		<occupation>Wizard</occupation>
	</USER>
</USERS>
(fig. b)

The data the GET is expecting.

<TEXT label="{UserData.status}"/>
<BUTTON onclick="fire('UserData')" label="Fire!"/>
(fig. c)

A [TEXT] widget reporting the status of the GET widget, and a [BUTTON] calling the fire() event.

Other Widgets You May Find Useful:

Clone this wiki locally