Thinger — платформа, обеспечивающая возможность хранения, обработки и визуализации данных Ваших устройств.
Thinger позволяет управлять данными отдельных устройств посредством HTTP-запросов REST API в JSON формате.
Настоящий документ является черновиком, содержит неполное описание всех функций сервиса и будет постоянно расширяться.
API доступен по адресам https:/thinger.ru/api/v1 и http:/thinger.ru/api/v1
Предпочтительнее использовать шифрованный HTTPS
протокол вместо HTTP
.
Текущие функции:
- запрос свойств устройства;
- обновление свойств устройства;
- запрос истории свойств устройства.
Поддерживаемые HTTP методы:
GET
— для чтения данных;PUT
— для обновления данных.
Запросы на создание и удаление отдельных объектов в настоящее время недоступны.
Коды ошибок:
200
— запрос обработан корректно.
401
— не авторизован. Проверьте, корректно ли вы заполнили заголовки авторизации. Так же возможно, Вы пытаетесь получить доступ к устройству другого пользователя без соответсвующих прав.
404
— ресурс не найден. Возможно вы указали ID не существующего устройства или имя несуществующего свойства?
500
— внутренняя ошибка сервера. Если встретите, сообщите об ошибке нам на info@thinger.ru.
Авторизация.
API поддерживает 3 метода авторизации:
-
API Key
Самый простой способ авторизации. Рекомендуется использовать только с
HTTPS
.
Требует наличия 2-х дополнительных HTTP заголовков:- Authorization:
X-ApiAuth-none
- X-ApiAuth-Key:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Ключ можно найти на странице нужного устройства во вкладке API.
- Authorization:
-
HTTP Basic Authentication
Требует передачи в Authorization заголовке пары
логин:пароль
, закодированных вBase64
. https://en.wikipedia.org/wiki/Basic_access_authentication -
API Key HMAC-SHA1 signature
Данный метод будет описан позднее.
Поддерживаемые API запросы
1. Запрос значения одного свойства
GET
Пример запроса:
http://thinger.ru/api/v1/things/21/properties/motor
Пример ответа:
{ "Name":"motor", "Updated":1433302678, "SysUpdated":1433302678, "Value":929055 }
Name
— имя свойства.SysUpdated
— системное время обновления свойства, фиксируется сервером автоматически (Unix Timestamp).Updated
— время обновления свойства, указанное при обновлении устройством, может совпадать с SysUpdated, если не было определено.Value
— значение.
2. Запрос значения всех свойств
GET
Пример запроса:
http://thinger.ru/api/v1/things/21/properties
[ { "Name":"motor", "Updated":1433302678, "SysUpdated":1433302678, "Value":929055 }, { "Name":"coin", "Updated":1433302679, "SysUpdated":1433302679, "Value":145 } ]
3. Обновление значения одного свойства
PUT
Пример запроса:
http://thinger.ru/api/v1/things/21/properties/motor
Тело запроса:
{ Value:929055 }
4. Обновление значения группы свойств
PUT
Пример запроса:
http://thinger.ru/api/v1/things/21/properties
Тело запроса:
[ { Name:"Motor", Value:929055 }, { Name:"coin", Value:145 } ]