APIs for time series data
Each LinkedFactory instance provides a set of REST-APIs for working with items and associated time series data.
- values
-
Endpoint for ingesting and querying of time series data.
- properties
-
Endpoint for reading the known properties of a single item.
- descendants
-
Endpoint for reading the descendants of a single item
The values
endpoint
This is the main entry point for working with time series data.
Insert data
Data can be ingested by using POST requests with content-type application/json
to the endpoint values
.
Query data
Data can be queried by issueing a GET request to the endpoint /linkedfactory/values
with the required parameter item
which specifies the subject of time series data.
An example would be GET values?item=http://example.org/resource1
that returns a JSON document like:
{
"http://example.org/resource1": {
"http://example.org/properties/p1": [
{ "value": 20.4, "time": 1619424246120 },
{ "value": 20.3, "time": 1619424246100 }
],
"http://example.org/properties/p2": [
{ "value": { "msg" : "Error 1", "nr" : 1 }, "time": 1619424246100 }
]
}
}
The returned data is sorted descending by time. That means a GET request with limit=1 always returns the latest value. |
Parameter | Description | Example |
---|---|---|
item (required) |
One ore more subject of the time series data. This is a space separated list. |
|
property |
One ore more properties whose values should be returned. This is a space separated list. |
|
limit |
Maximum number of values for each property. |
5 |
to |
The last timestap in milliseconds (inclusive) |
1619424246120 |
from |
The first timestap in milliseconds (inclusive) |
1619424246100 |
op |
Aggregation operator for the data values. One of: min, max, avg, sum |
avg |
interval |
Used in conjunction with op and specifies the grouping interval for the aggregation operation in milliseconds. |
1000 |
The properties
endpoint
This endpoint allows to query the known properties of an item.
Parameter | Description | Example |
---|---|---|
item (required) |
The item for which the properties should be returned. |
An example would be GET properties?item=http://example.org/resource1
that returns a JSON document like:
[{
"@id": "http://example.org/properties/p1"
}, {
"@id": "http://example.org/properties/p2"
}]
The **
endpoint
This endpoint returns the known descendants of an item. It can be used as an entry point to traverse the items of a LinkedFactory instance.
What is considered a descendant of another item is specific to the data model of an instance. The hierarchy may be established by the URLs path structure, where resource1/component1
is a descendant of resource1
, or via other means like OPC UA defined relationships.
Parameter | Description | Example |
---|---|---|
item |
The item for which the descendants should be returned. |
|
An example would be GET **?item=http://example.org/resource1
that returns a JSON document like:
[{
"@id": "http://example.org/resource1/component1"
}, {
"@id": "http://example.org/resource1/component2"
}, {
"@id": "http://example.org/resource1/component2/sub-component1"
}]