Integração de dados na Tekon IoT Platform por REST API - Anatomia de um pedido
A Tekon IoT Platform permite a integração de dados por REST API. A comunicação entre cliente e servidor é feita com um pedido que é composto por 4 elementos:
• Endpoint;
• Método;
• Header;
• Corpo (dados);
Endpoint
O endpoint é a URL à qual o pedido é dirigido. No caso da Tekon IoT Platform, é composto pela concatenação do endereço da instância e o diretório api/datasourceData/apikey/
Exemplo:
https://iot19.tekonelectronics.com/api/datasourceData/apikey/
Método
O método é o tipo de pedido enviado para o servidor. Uma vez que a principal ação pretendida é o envio de dados, o método utilizado é o POST. Ao utilizar este método é criado um registo na base de dados e é devolvida uma resposta com a informação, de sucesso ou erro, caso os dados tenham sido aceites ou rejeitados. O tipo de respostas devolvido, pode ser consultado no tópico “Códigos de estado e mensagens de erro”.
Header
Dentro do cabeçalho, é transportada informação relevante para o servidor. No cabeçalho têm de ser enviados os seguintes parâmetros:
• Content-Type: application/json
Indica ao servidor que o tipo de conteúdo está em formato JSON.
• datasourceApiKey: {datasource_api_key}
O campo {datasource_api_key} corresponde à API Key associada ao datasource da Tekon IoT Platform, para o qual serão enviados os dados.
• userApikey: {user_api_key}
O campo {user_api_key} corresponde à API Key associada ao utilizador.
Os dados para os parâmetros datasourceApiKey e userApikey são disponibilizados pela Tekon IoT Platform.
Exemplo:
Content-Type: application/json
datasourceApiKey: 97522f70-a9d2-4909-a345-eb27d7681a35
userApikey: 18b68771-e8bc-47c0-88fc-a16f631fcf98
Corpo (dados)
O corpo contém os dados que pretende enviar para o servidor. Os dados de envio devem apresentar a seguinte estrutura de exemplo:
{
"TimestampMilliseconds": 1526034198371, // campo opcional
"VariablesData": [
{"VariablePosition":1,"Value":3},
{"VariablePosition":2,"Value":1},
{"VariablePosition":3,"Value":-34},
{"VariablePosition":4,"Value":10},
{"VariablePosition":5,"Value":1},
{"VariablePosition":6,"Value":9},
{"VariablePosition":7,"Value":"2.0.1"},
{"VariablePosition":8,"Value":"1.2"},
{"VariablePosition":9,"Value":26.4},
{"VariablePosition":10,"Value":24.0}
]
}