ODLUX DB API Guilin Extension
For Guilin inventory tree view extension (ODLUX Inventory enhancement with treeview) the data-provider (Data-Provider) is getting a new extension.
Goal:
Provide a function to analyse a database with inventory entries
Provide filter function to filter on device level or inside device at different tree-level
The function provides back tree lists of inventory id's according to given filter
Additionally a correlation to equipment alarm severity is provided.
The id's of the result can be used for data-provider's request to get the concrete data
Characteristics:
Additional API with URL for POST "/tree/read-inventory-tree"
The request provides back a list of equipment id's according to the request filter
Two filter levels:
URL path : Points to a subtree of elements that are search by filter in query-body
query-body with textual or field specific search.
Delivers back all inventory id's for the given URL/path query-body filter
Use data-provider api "inventoryequipment" to get inventory data for an id
Extension of data-provider Web-API in Guilin:
request | Scope to apply query-body to | key-level-0 |
---|---|---|
GET|POST /tree/read-inventory-tree/ | All equipment entries in the database for every node-id | node-id |
GET|POST /tree/read-inventory-tree/{nodeId} | All Equipment under node with "nodeId" | uuid (tree-level=0) |
GET|POST /tree/read-inventory-tree/{nodeId}/{uuid-level-0} | All Equipment under node "nodeId" and next level equipment with "uuid-level-0" | uuid (tree-level=1) |
Example 1: Query-body with text if POST-request
{
"query":"2143524123"
}
Example 2: Converted to an database (Elasticsearch) query (search through all properties)
POST /alias/doctype/_search
{
"query": {
"query_string": {
"default_field": "*",
"query": "*searchfor*"
}
}
}
Example 3: Response
{
"{key-level-0}":{
"label":"1.0 Shelf",
"children?":{
"{key-level-1}": {
...
}
},
"isMatch":true,
"ownSeverity?":"major",
"childrenSeveritySummary?":"minor"
}
}
property | description |
---|---|
{key-level-n} | databaseId to be used for data-provider api "inventoryequipment" to get all information |
isMatch | true if query matches any property of the db entry |
label | Node-Id if it's a node, uuid if it's an equipment |
for future use:
property | description |
---|---|
ownSeverity | Actual severity of this piece of matching equipment |
childrenSeveritySummary | Actual severity level of child equipment |