Всё взаимодействие с API должно вестись по протоколу HTTPS.
Базовый эндпоинт API, относительно которого строятся запросы:
https://api.breez.ru/v1/
.
Используемый HTTP-метод: GET
.
Тип запроса указывается в качестве части пути.
Параметры запроса передаются в параметрах URL, например:
GET https://api.breez.ru/v1/brands/?id=1
В данном случае brands
это тип запроса, а параметр
запроса id
равен 1
.
Авторизация происходит посредством Базовой схемы HTTP-аутентификации. Учётные данные для доступа к API передаются с каждым запросом в заголовке Authorization. Заголовок должен иметь следующий формат:
Authorization: Basic <credentials>
Где <credentials>
- это ваши учётные данные,
представленные в виде закодированной в Base64 строки вида
имя_пользователя:пароль
. Например, если
ваше имя пользователя username
, а пароль password
,
то строка будет иметь вид username:password
. Кодируем
её в Base64 и получаем dXNlcm5hbWU6cGFzc3dvcmQ=
. Тогда
заголовок будет иметь вид
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Учётные данные для авторизации можно получить запросом через
форму "Запросить ключ" на api.breez.ru.
Данные доступны в двух форматах: JSON (по умолчанию) и XML.
Для того, чтобы задать желаемый формат данных, необходимо среди
параметров запроса передать параметр URL format
,
в качестве значения указав json
(аналогично отсутствию
параметра) или xml
соответственно, например:
GET https://api.breez.ru/v1/brands/?format=xml
Такой запрос вернёт список всех брендов в формате XML.
В случае, если по тем или иным причинам в процессе выполнения запроса произошла ошибка, которая не относится к конкретному виду запроса, то вместо данных в выбранном формате в теле ответа придёт объект ошибки такого формата:
GET https://api.breez.ru/v1/brans/
{ "error": "Неизвестный запрос." }
<error>Неизвестный запрос.</error>
В ответ на данный запрос возвращаются все находящиеся в БД категории. Они приходят в виде объекта, в котором ключи - это идентификаторы категорий в базе данных, а значения - это объекты, содержащие данные по соответствующим категориям.
GET https://api.breez.ru/v1/categories/
{
"1": {
"title": "MyCategory1",
"chpu": "mycategory1",
"level": "0",
"order": "1"
},
"2": {
"title": "MyCategory2",
"chpu": "mycategory2",
"level": "1",
"order": "1"
},
...
}
<categories>
<category>
<id>1</id>
<title>MyCategory1</title>
<chpu>mycategory1</chpu>
<level>0</level>
<order>1</order>
</category>
<category>
<id>2</id>
<title>MyCategory2</title>
<chpu>mycategory2</chpu>
<level>1</level>
<order>1</order>
</category>
...
</categories>
Параметр | Тип | Описание |
---|---|---|
title | String | Наименование категории |
chpu | String | ЧПУ |
level | String | Идентификатор родительской категории |
order | String | Порядок сортировки категории среди других на своем уровне. |
В ответ на данный запрос возвращается категория с соответствующим идентификатором. Она приходит в виде объекта, в котором ключ - это идентификатор категории в базе данных, а значение - это объект, содержащий данные по соответствующей категории. В случае, если категории с указанным идентификатором не существует, в JSON возвращается объект с ключом "error" и значением "Неверный ID", а в XML - пустой объект "categories".
GET https://api.breez.ru/v1/categories/?id=1
{
"1": {
"title": "MyCategory1",
"chpu": "mycategory1",
"level": "0",
"order": "1"
}
}
<categories>
<category>
<id>1</id>
<title>MyCategory1</title>
<chpu>mycategory1</chpu>
<level>0</level>
<order>1</order>
</category>
</categories>
Параметр | Тип | Описание |
---|---|---|
title | String | Наименование категории |
chpu | String | ЧПУ |
level | String | Идентификатор родительской категории |
order | String | Порядок сортировки категории среди других на своем уровне. |
В ответ на данный запрос возвращаются все находящиеся в БД бренды.
Они приходят в виде объекта, в котором ключи - это идентификаторы
брендов в базе данных, а значения - это объекты, содержащие данные
по соответствующим брендам. Бренды отсортированы по полю order
.
GET https://api.breez.ru/v1/brands/
{
"1": {
"title": "MyBrand1",
"chpu": "mybrand1",
"image": "https:\/\/breez.ru\/images\/brands\/MyBrand1.jpg",
"url": "https:\/\/mybrand1.ru\/",
"order": "1"
},
"2": {
"title": "MyBrand2",
"chpu": "mybrand2",
"image": "https:\/\/breez.ru\/images\/brands\/MyBrand2.jpg",
"url": "https:\/\/mybrand2.ru\/",
"order": "2"
},
...
}
<brands>
<brand>
<id>1</id>
<title>MyBrand1</title>
<chpu>mybrand1</chpu>
<image>https://breez.ru/images/brands/MyBrand1.jpg</image>
<url>https://mybrand1.ru/</url>
<order>1</order>
</brand>
<brand>
<id>2</id>
<title>MyBrand2</title>
<chpu>mybrand2</chpu>
<image>https://breez.ru/images/brands/MyBrand2.jpg</image>
<url>https://mybrand2.ru/</url>
<order>2</order>
</brand>
...
</brands>
В ответ на данный запрос возвращается бренд с соответствующим идентификатором. Он приходит в виде объекта, в котором ключ - это идентификатор бренда в базе данных, а значение - это объект, содержащий данные по соответствующему бренду. В случае, если бренда с указанным идентификатором не существует, в JSON возвращается объект с ключом "error" и значением "Неверный ID", а в XML - пустой объект "brands".
GET https://api.breez.ru/v1/brands/?id=1
{
"1": {
"title": "MyBrand1",
"chpu": "mybrand1",
"image": "https:\/\/breez.ru\/images\/brands\/MyBrand1.jpg",
"url": "https:\/\/mybrand1.ru\/",
"order": "1"
}
}
<brands>
<brand>
<id>1</id>
<title>MyBrand1</title>
<chpu>mybrand1</chpu>
<image>https://breez.ru/images/brands/MyBrand1.jpg</image>
<url>https://mybrand1.ru/</url>
<order>1</order>
</brand>
</brands>
Параметр | Тип | Описание |
---|---|---|
title | String | Наименование бренда |
chpu | String | ЧПУ |
image | String | Ссылка на логотип бренда |
url | String | Ссылка на сайт бренда |
order | String | Порядок сортировки бренда среди других. |
В ответ на данный запрос возвращаются все находящиеся в БД продукты. Они приходят в виде объекта, в котором ключи - это идентификаторы продуктов в базе данных, а значения - это объекты, содержащие данные по соответствующим продуктам.
GET https://api.breez.ru/v1/products/
{
...,
"1000000": {
"nc": "НС-0000001",
"nc_vnutr": "НС-0000002",
"nc_naruj": "НС-0000003",
"nc_accessory": "",
"price": {
"rrc": "9000",
"rrc_currency": "RUB"
},
"articul": "AB-CDEF123",
"category_id": "2",
"title": "Классические сплит-системы серии SPLIT 2000",
"series": "Классические сплит-системы серии SPLIT",
"brand": "1",
"utp": "● Стильный дизайн;<br>\r\n...",
"description": "<p>Сплит-системы SPLIT SUPER 2000 выполнены...",
"booklet": "https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/book.pdf",
"manual": "https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/man.pdf",
"bim_model": "",
"video_youtube": "ABCDefg123",
"images": [
"https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_f.png",
"https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_i.png",
...
]
}
,...
}
<products>
...
<product>
<id>1000000</id>
<nc>НС-0000001</nc>
<nc_vnutr>НС-0000002</nc_vnutr>
<nc_naruj>НС-0000003</nc_naruj>
<nc_accessory></nc_accessory>
<price>
<rrc>9000</rrc>
<rrc_currency>RUB</rrc_currency>
</price>
<articul>AB-CDEF123</articul>
<category_id>2</category_id>
<series>Классические сплит-системы серии SPLIT</series>
<title>Классические сплит-системы серии SPLIT 2000</title>
<brand>1</brand>
<utp>● Стильный дизайн;<br>...</utp>
<description><p>Сплит-системы SPLIT SUPER 2000 выполнены...</description>
<booklet>https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/book.pdf</booklet>
<manual>https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/man.pdf</manual>
<bim_model></bim_model>
<video_youtube>ABCDefg123</video_youtube>
<images>
<image>https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_f.png</image>
<image>https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_i.png</image>
...
</images>
</product>
...
</products>
В ответ на данный запрос возвращается продукт с соответствующим идентификатором. Она приходит в виде объекта, в котором ключ - это идентификатор продукта в базе данных, а значение - это объект, содержащий данные по соответствующему продукту. В случае, если продукта с указанным идентификатором не существует, в JSON возвращается объект с ключом "error" и значением "Неверный ID", а в XML - пустой объект "product".
GET https://api.breez.ru/v1/products/?id=1000000
{
"1000000": {
"nc": "НС-0000001",
"nc_vnutr": "НС-0000002",
"nc_naruj": "НС-0000003",
"nc_accessory": "",
"price": {
"rrc": "9000",
"rrc_currency": "RUB"
},
"articul": "AB-CDEF123",
"category_id": "2",
"series": "Классические сплит-системы серии SPLIT",
"title": "Классические сплит-системы серии SPLIT 2000",
"brand": "1",
"utp": "● Стильный дизайн;<br>\r\n...",
"description": "<p>Сплит-системы SPLIT SUPER 2000 выполнены...",
"booklet": "https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/book.pdf",
"manual": "https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/man.pdf",
"bim_model": "",
"video_youtube": "ABCDefg123",
"images": [
"https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_f.png",
"https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_i.png",
...
],
"techs": {
"1480": {
"id_char": 1480,
"title": "Бренд",
"type": "string",
"unit": "",
"show": "1",
"required": "1",
"filter": "1",
"filter_type": "select",
"first": "1",
"supcat": "1",
"analog": "0",
"order": "1",
"group": "Основные",
"value": "SPLIT"
},
...
}
}
}
<products>
<product>
<id>1000000</id>
<nc>НС-0000001</nc>
<nc_vnutr>НС-0000002</nc_vnutr>
<nc_naruj>НС-0000003</nc_naruj>
<nc_accessory></nc_accessory>
<price>
<rrc>9000</rrc>
<rrc_currency>RUB</rrc_currency>
</price>
<articul>AB-CDEF123</articul>
<category_id>2</category_id>
<series>Классические сплит-системы серии SPLIT</series>
<title>Классические сплит-системы серии SPLIT 2000</title>
<brand>1</brand>
<utp>● Стильный дизайн;<br>...</utp>
<description><p>Сплит-системы SPLIT SUPER 2000 выполнены...</description>
<booklet>https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/book.pdf</booklet>
<manual>https:\/\/breez.ru\/files\/biblio\/split\/super-2000\/man.pdf</manual>
<bim_model></bim_model>
<video_youtube>ABCDefg123</video_youtube>
<images>
<image>https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_f.png</image>
<image>https:\/\/images.breez.ru\/catalog\/splits\/split\/2000_super_i.png</image>
...
</images>
<techs>
<tech>
<id_char>1480</id_char>
<title><![CDATA[Бренд]]></title>
<type>string</type>
<unit><![CDATA[]]></unit>
<show>1</show>
<required>1</required>
<filter>1</filter>
<filter_type>select</filter_type>
<first>1</first>
<supcat>1</supcat>
<analog>0</analog>
<order>1</order>
<group>Основные</group>
<value>SPLIT</value>
</tech>
...
</techs>
</product>
</products>
Параметр | Тип | Описание |
---|---|---|
nc | String | НС-код продукта (или комплекта в сложносоставных) |
nc_vnutr, nc_naruj, nc_accessory |
String | НС-коды составных частей комплекта в сложносоставных |
price | Object | Информация о цене |
rrc | String | Стоимость типа РИЦ (рекомендованная интернет цена) |
rrc_currency | String | Валюта РИЦ (RUB / USD / EUR) |
articul | String | Артикул |
category_id | String | Идентификатор категории |
series | String | Название серии |
title | String | Название продукта |
brand | String | Идентификатор бренда |
utp | String | УТП |
description | String | Описание |
booklet | String | URL файла с буклетом |
manual | String | URL файла с инструкцией |
bim_model | String | URL файла с моделью |
video_youtube | String | Идентификатор видео на YouTube |
images | Array | URL изображений продукта |
techs | Object | ТХ продукта |
Данный тип запроса, в отличие от остальных, не работает без параметров запроса.
В ответ на данный запрос возвращаются все технические характеристики, принадлежащие к категории с указанным идентификатором. В случае, если категории с указанным идентификатором не существует, в JSON возвращается объект с ключом "error" и значением "Неверный ID". В XML возвращается объект "categories" с двумя объектами: "cat_id" содержащий запрошенный идентификатор и пустой "techs".
GET https://api.breez.ru/v1/tech/?category=2
{
"category": 2,
"techs": {
"1480": {
"tech_id": "1480",
"title": "Бренд",
"data_type": "string",
"unit": "",
"required": "1",
"filter": "1",
"filter_type": "select",
"group": "Основные",
"order": "1"
},
"1489": {
"tech_id": "1489",
"title": "Модель",
"data_type": "string",
"unit": "",
"required": "1",
"filter": "0",
"filter_type": "",
"group": "Основные",
"order": "2"
},
...
}
}
<category>
<cat_id>2</cat_id>
<techs>
<tech>
<tech_id>1480</tech_id>
<title><![CDATA[Бренд]]></title>
<data_type>string</data_type>
<unit><![CDATA[]]></unit>
<required>1</required>
<filter>1</filter>
<filter_type>select</filter_type>
<group>Основные</group>
<order>1</order>
</tech>
<tech>
<tech_id>1489</tech_id>
<title><![CDATA[Модель]]></title>
<data_type>string</data_type>
<unit><![CDATA[]]></unit>
<required>1</required>
<filter>0</filter>
<filter_type></filter_type>
<group>Основные</group>
<order>2</order>
</tech>
...
</techs>
</category>
Параметр | Тип | Описание |
---|---|---|
category | Integer | Идентификатор категории |
techs | String | Объект, содержащий ТХи, где ключ - идентификатор ТХ, а значение - объект с ТХ |
tech_id | String | Идентификатор |
title | String | Наименование |
data_type | String | Тип данных |
unit | String | Единицы измерения (отсутствует если неприменимо) |
required | String | Обязательна ли данная ТХ |
filter | String | Требуется ли выводить фильтр по ТХ |
filter_type | String | Тип фильтра |
group | String | Группа ТХ на странице продукта |
order | String | Порядок отображения на странице |
В ответ на данный запрос возвращаются данные по продукту с указанным идентификатром. Данные влючают в себя НС-коды, а также все технические характеристики продукта и их значения. В случае, если продукта с указанным идентификатором не существует, в JSON возвращается объект с ключом "error" и значением "Неверный ID", а в XML - пустой объект "product".
GET https://api.breez.ru/v1/tech/?id=2
{
"2": {
"nc": "НС-0000001",
"nc_vnutr": "",
"nc_naruj": "",
"nc_accessory": "",
"techs": {
"3379": {
"id_char": 3379,
"title": "Бренд",
"type": "string",
"unit": "",
"show": "1",
"required": "1",
"filter": "0",
"filter_type": "",
"first": "1",
"supcat": "0",
"analog": "0",
"order": "1",
"group": "Основные",
"value": "MyBrand"
},
...
}
}
<product>
<id>2</id>
<nc>НС-0000001</nc>
<nc_vnutr></nc_vnutr>
<nc_naruj></nc_naruj>
<nc_accessory></nc_accessory>
<techs>
<tech>
<id_char>3379</id_char>
<title><![CDATA[Бренд]]></title>
<type>string</type>
<unit><![CDATA[]]></unit>
<show>1</show>
<required>1</required>
<filter>0</filter>
<filter_type></filter_type>
<first>1</first>
<supcat>0</supcat>
<analog>0</analog>
<order>1</order>
<group>Основные</group>
<value>MyBrand</value>
</tech>
...
</techs>
</product>
Параметр | Тип | Описание |
---|---|---|
nc | String | НС-код продукта |
nc_vnutr, nc_naruj, nc_accessory |
String | НС-коды составных частей в сложных продуктах |
techs | Object | Объект, содержащий ТХи, где ключ - идентификатор ТХ, а значение - объект с ТХ |
id_char | Integer | Идентификатор |
title | String | Наименование |
type | String | Тип данных |
unit | String | Единицы измерения (отсутствует если неприменимо) |
show | String | Отображается ли данная ТХ |
required | String | Обязательна ли данная ТХ |
filter | String | Требуется ли выводить фильтр по ТХ |
filter_type | String | Тип фильтра |
first | String | Отображается ли ТХ в карточке товара |
supcat | String | Требуется ли выводить фильтр по ТХ в надкатегории |
analog | String | Требуется ли ТХ для поиска аналогов |
order | String | Порядок отображения на странице |
group | String | Группа ТХ на странице продукта |
value | String | Значение ТХ |