Получение списка моделей устройств (get models)

Вендор запрашивает у умного дома Sber список моделей своих устройств.

Пример ситуации использования:

  1. Вендор проверяет, информация о каких моделях его устройств есть в базе умного дома, а о каких — нет. Для этого отправляет запрос в умный дом.
  2. Умный дом Sber возвращает список моделей устройств и их функций.

Формат запроса

Вендор отправляет уведомление на эндпоинт умного дома Sber: https://partners.iot.sberdevices.ru/. Заголовки см. в разделе Заголовки запросов.

GET /v1/models

Формат ответа

Умный дом отправляет ответ на эндпоинт вендора. Заголовки см. в разделе Заголовки запросов.

Успешный ответ:

Поле Тип Обязательное? Описание
models list<object> ✔︎ Список моделей устройств (см. Модель устройства (model))
{
    "models": [
        {
            "id": string,
            "manufacturer": string,
            "model": string,
            "hw_version": string,
            "sw_version": string,
            "description": string,
            "category": string,
            "features": [
                "online": string,
                "on_off": string
                // ... 
            ],
            "dependencies": {
                "func_name": {
                    "key": "string",
                    "values": [
                        {
                            "type": string,
                            "type_value": object
                        },
                        {
                            // ...
                        },
                   ]
                },
                {
                    // ...
                }
            }
        },
        {
            // ...
        }
    ]
}

При возникновении ошибки возвращается объект типа common error:

{
    "code": integer,
    "message": string,
    "details": list<string>
}

Пример запроса и ответа

Вендор запрашивает у умного дома Sber список моделей своих устройств. Умный дом возвращает одно устройство — лампу.

Запрос:

curl -i -X GET /v1/models HTTP/1.1 \
-H Host: example.com \
-H Content-Type: application/json \
-H Authorization: Bearer qwerty-1234-... \
-H X-Request-Id: abcd-0000-ifgh-...

Успешный ответ:

{
    "models": [
        {
            "id": "QWERTY123",
            "manufacturer": "Factory",
            "model": "SM0123456789",
            "hw_version": "3.2",
            "sw_version": "5.7",
            "description": "About device",
            "category": "light",
            "features": [
                "online",
                "on_off"
            ]
        }
    ]
}

Ответ с ошибкой:

{
    "code": 400,
    "message": "Invalid argument",
    "details": []
}