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
}
]
