About EnOS Common Data Service API


EnOS Common Data Service can be used to register and route data. It unifies heterogeneous data from multiple sources and accelerates application development. For more details about Common Data Service, see EnOS Common Data Service.


Common Data Service API provides a unified, standardized, and configurable data access entry for data consumers.


For more information about how to invoke EnOS APIs, see Get Started with EnOS API.

API Service List


Common Data Service provides the following Open API services.


Operation Name

Description

URL

EnOS Cloud

EnOS Edge

Query Meta Attribute

Get meta attributes

/cds-meta-service/v1.0/attribute?action=query

Query Meta Measurement Point

Get meta measurement points

/cds-meta-service/v1.0/measurement-point?action=query

Query Meta Metric

Get meta metrics

/cds-meta-service/v1.0/metric?action=query

Query Meta Generic Data

Get meta generic data

/cds-meta-service/v1.0/generic?action=query

Query Meta Record

Get meta records

/cds-meta-service/v1.0/record?action=query

Query Accessible Asset Type

Get accessible asset types

/cds-asset-service/v1.0/accessible-asset-type?action=query

Query Accessible Asset

Get accessible assets

/cds-asset-service/v1.0/accessible-asset?action=query

Query Asset Attribute

Get the attributes of designated assets

/cds-asset-service/v1.0/attribute?action=query

Query Asset Hierarchy

Get the hierarchies of designated assets

/cds-asset-service/v1.0/hierarchy?action=query

Query Asset Topology

Get the topologies of designated assets

/cds-asset-service/v1.0/topology?action=query

Query Asset Topology Rule

Get the topology rules of designated assets

/cds-asset-service/v1.0/topology/rule?action=query

Query Latest Measurement Point

Get the latest readings of measurement points

/cds-realtime-service/v1.0/measurement-point/latest?action=query

Query Latest Metric

Get the latest readings of metrics

/cds-realtime-service/v1.0/metric/latest?action=query

Query Historical Measurement Point

Get the historical data of measurement points

/cds-timeseries-service/v1.0/tsdb-detail?action=query

Query Historical Metric

Get the historical data of metrics

/cds-metric-service/v1.0/metric?action=query

Query Record

Get third-party records

/cds-record-service/v1.0/record?action=query

API Editions


The following table lists the API services included in Common Data Service Enterprise and Lightweight editions.


Operation Name

Enterprise

Lightweight

Query Meta Attribute

Query Meta Measurement Point

Query Meta Metric

Query Meta Generic Data

Query Meta Record

Query Accessible Asset Type

Query Accessible Asset

Query Asset Attribute

Query Asset Hierarchy

Query Asset Topology

Query Asset Topology Rule

Query Latest Measurement Point

Query Latest Metric

Query Historical Measurement Point

Query Historical Metric

Query Record

API Request


A Common Data Service API request consists of the following parts.

Request URI


METHOD {URI-scheme}://{apigw-address}/{service-name}/{version}/{endpoint-URL}?{action=query&{}}


In the URI:

  • METHOD: HTTP Method. For example, GET and POST.

  • URI-scheme: API protocol. Use HTTPS protocol.

  • api-gateway: API gateway address. For example, app-portal-xxx.enos-iot.com. It can be retrieved by logging in to the EnOS Management Console and clicking Help > Environment Information at the top right. Refer to the address under API Gateway.

  • service-name: Service name. For example, cds-metric-service.

  • version: API version. Use v1.0.

  • endpoint-URL: Resource name or operations on resources. For example, metric.

  • action=query&: Query parameters in URI. Use & as delimiters if there are multiple parameters. For example, action=query&orgId={yourOrgId}&mdmIds={yourMdmId}.

Request Header


The fields required by the REST API specification or the HTTP specification are bound in the request header.


The commonly used request header is Content-Type, which represents the data submission method. In general, its value can be set to application / json; charset = UTF-8; if file upload or other form submission is performed, the value is set to multipart / form-data; charset = UTF-8.

Request Sample


GET https://{api-gateway}/cds-asset-service/v1.0/accessible-asset-type?action=query&orgId=yourOrgId

API Response


Common Data Service API returns a JSON structure in the following format.


{
    "msg": "OK",
    "code": 0,
    "data": [
      {
         "mdmType": "EnOS_Solar_Site",
         "domain": "solar",
         "domainName": "Solar",
         "isSite": true,
         "name": "exampleSolarSite"
      },
      {
         "mdmType": "EnOS_Solar_Inverter",
         "domain": "solar",
         "domainName": "Solar",
         "isSite": false,
         "name": "exampleSolarInverter"
      }
    ],
    "traceId": "1234567890abcdefghijkl0987654321"
}


The table below describes the components of a Common Data Service API response.


Name

Data Type

Description

msg

String

The explanation of the status codes. “OK” indicates a successful request. If the API request fails, the specific error message will be returned.

code

Integer

The API request status code. “0” means that the request is successful. For the information about other status codes, see Response Codes.

data

Array or Object

The returned dataset. For the information about response parameters in the returned dataset, see the corresponding API references.

traceId

String

API response event ID, which is usually used to track the response of a specific API call to Common Data Service for troubleshooting purposes.

Response Codes


The table below describes all response codes of Common Data Service API.


Code

Description

0

API service was called successfully

95400

Illegal request parameter(s). Check the parameter(s)

95500

Internal server error. Contact your System Administrator

95600

Error occurred when Common Data Service called the data source. Contact your System Administrator

Response Samples


Sample of response failure.


{
    "msg": "[Error!: Asset Not found , Please check that the asset ID is correct. assetIds is [exampleAsset]]",
    "code": 95400,
    "traceId": "1234567890abcdefghijkl0987654321"
}


Sample of response success.


{
    "msg": "OK",
    "code": 0,
    "data": [
      {
         "mdmType": "EnOS_Solar_Site",
         "domain": "solar",
         "domainName": "Solar",
         "isSite": true,
         "name": "exampleSolarSite"
      },
      {
         "mdmType": "EnOS_Solar_Inverter",
         "domain": "solar",
         "domainName": "Solar",
         "isSite": false,
         "name": "exampleSolarInverter"
      }
    ],
    "traceId": "1234567890abcdefghijkl0987654321"
}