Thinger — платформа, обеспечивающая возможность хранения, обработки и визуализации данных Ваших устройств.

Thinger позволяет управлять данными отдельных устройств посредством HTTP-запросов REST API в JSON формате.

Настоящий документ является черновиком, содержит неполное описание всех функций сервиса и будет постоянно расширяться.

API доступен по адресам https:/thinger.ru/api/v1 и http:/thinger.ru/api/v1

Предпочтительнее использовать шифрованный HTTPS протокол вместо HTTP.

Текущие функции:

Поддерживаемые HTTP методы:

Запросы на создание и удаление отдельных объектов в настоящее время недоступны.

Коды ошибок:

200 — запрос обработан корректно.

401 — не авторизован. Проверьте, корректно ли вы заполнили заголовки авторизации. Так же возможно, Вы пытаетесь получить доступ к устройству другого пользователя без соответсвующих прав.

404 — ресурс не найден. Возможно вы указали ID не существующего устройства или имя несуществующего свойства?

500 — внутренняя ошибка сервера. Если встретите, сообщите об ошибке нам на info@thinger.ru.

Авторизация.

API поддерживает 3 метода авторизации:

  1. API Key

    Самый простой способ авторизации. Рекомендуется использовать только с HTTPS.
    Требует наличия 2-х дополнительных HTTP заголовков:

    • Authorization: X-ApiAuth-none
    • X-ApiAuth-Key: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      Ключ можно найти на странице нужного устройства во вкладке API.
  2. HTTP Basic Authentication

    Требует передачи в Authorization заголовке пары логин:пароль, закодированных в Base64. https://en.wikipedia.org/wiki/Basic_access_authentication

  3. API Key HMAC-SHA1 signature

    Данный метод будет описан позднее.

Поддерживаемые API запросы

1. Запрос значения одного свойства

Пример запроса:

http://thinger.ru/api/v1/things/21/properties/motor

Пример ответа:

{
  "Name":"motor",
  "Updated":1433302678,
  "SysUpdated":1433302678,
  "Value":929055
}

2. Запрос значения всех свойств

Пример запроса:

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. Обновление значения одного свойства

Пример запроса:

http://thinger.ru/api/v1/things/21/properties/motor

Тело запроса:

{
  Value:929055
}

4. Обновление значения группы свойств

Пример запроса:

http://thinger.ru/api/v1/things/21/properties

Тело запроса:

[
  {
    Name:"Motor", 
    Value:929055
  },
  {
    Name:"coin", 
    Value:145
  }
]