Запросы api: Что такое API
API
- API, Betta 0.193 2020-11-17
- Формат протокола
- Вызов
- Адрес для вызова
- Метод вызова
- Дополнительные параметры запроса
- Базовые лимиты_вызовов
- Ошибки оформления вызова
- Готовые библиотеки для работы
- Проверка request.id
- Последовательность обработки
- Не заданные параметры api-вызова
- Представление чисел
- Представление дат
- Ответ
- http-статусы
- Синхронность
- Общие поля ответа
- Нормальный ответ
- Формат ответа при ошибке
- Специальный ответ «Смена пароля»
- Кэширование
- Несколько запросов за один вызов
- Проверка доступности и авторизации
- Пинг без авторизации
- Пинг с авторизацией
- Возвращаемое значение
- Отправить результат на электронную почту
- Сохранить в Отчёты
- Загрузить на внешний ресурс пo http(s)
- Загрузить на внешний ресурс пo ftp(s)
- Отправить уведомление на электронную почту
- Отправить уведомление по sms
- Уведомить по внешней ссылке
- Вернуть в ответе
- Не возвращать
- Вызов
- Авторизация
- Авторизация по логину и паролю
- Авторизация по ключу api
- Авторизация AGSES-карт. Запрос.
- Авторизация AGSES-карт. Ответ.
- Окончание работы
- Логины и пароли в ссылках
- Отслеживание асинхронных запросов
- Список асинхронных запросов
- Состояние асинхронного запроса
- Интеграция
- Традиционные источники
- Siebel
- Google Big Query
- Flocktory
- Tilda
- amoCRM
- Bitrix24
- Яндекс.Маркет
- Mail.Ru Смарт-карточки
- Счёт (Invoice)
- Заказ (Order)
- EmailOnAcid
- Календарное событие
- Gmail Promotional Annotations
- Другое
- Подписчики
- Идентификация подписчика
- Использование адреса электронной почты
- Использование номера мобильного телефона
- Использование клиентского идентификатора
- Хранение заменителя адреса
- Мультиканальность
- Форматы хранения
- Формат «Анкета-Вопрос-Ответ»
- Формат «Ключи Данных»
- Cистемная анкета member
- Псевдо-ключ -group»
- Проверить существование подписчика
- Все подписчики с данным идентификатором
- Cоздать подписчика / Установить данные подписчика (КД)
- Получить данные подписчика (ДК)
- Получить набор данных (ДК)
- Cоздать подписчика / Установить ответы подписчика (АВО)
- Получить ответы подписчика (АВО)
- Удалить подписчика
- Объединение данных двух подписчиков
- Список идентификаторов
- Присоединение идентификатора
- Удаление идентификатора
- Замена идентификатора
- Участие подписчика в группах-фильтрах
- Список подписчиков
- Количество подписчиков
- Внесение списка подписчиков
- Массовое изменение данных подписчиков
- Пригласить подписчиков
- Подтвердить внесение в базу
- Информация об адресе
- Проверка адресов
- Удаление ошибок доставки
- Идентификация подписчика
- Группы адресов — Сегментирование аудитории
- Cписок групп
- Создать группу
- Прочитать группу
- Изменить группу
- Удалить группу
- Получить правила фильтрации группы
- Установить правила фильтрации группы
- Совпадение одного адреса с фильтром группы
- Снимок группы / Расширить группу-список
- Очистить группу-список
- Анкеты
- Список анкет
- Чтение анкеты
- Удаление анкеты
- Создание анкеты
- Сохранение анкеты
- Добавления нового вопроса анкеты
- Изменение вопроса анкеты
- Удаление вопроса анкеты
- Изменение позиции вопроса анкеты
- Удаление ответа вопроса анкеты
- Изменение позиции ответа вопроса
- Выпуски рассылки
- Способы выпуска
- Варианты выпуска рассылок
- Отправить тестовый выпуск
- Отправить выпуск
- Отложенные выпуски рассылок
- Список отложенных выпусков
- Прочитать отложенный выпуск
- Изменение даты выхода отложенного выпуска
- Изменение отложенного выпуска
- Удаление отложенного выпуска
- Управление текущими выпусками рассылок
- Список формирующихся и доставляющихся рассылок
- Приостановить выпуск рассылки
- Возобновить выпуск рассылки
- Досрочно начать выпуск всех отложенных частей рассылки
- Прекратить выпуск рассылки
- Настройка отправителей рассылок
- Список адресов email-отправителей
- Чтение адреса email-отправителя
- Создание или изменение адреса email-отправителя
- Удаление адреса email-отправителя
- Список имён sms-отправителей
- Чтение имени sms-отправителя
- Создание или изменение имени sms-отправителя
- Удаление имени sms-отправителя
- Мультиканальные выпуски
- Выпустить мультивыпуск
- Cписок мультивыпусков
- Чтение мультивыпуска
- Персонализация выпуска
- Данные для персонализации
- Раздача промо-кодов
- Персональные Excel-документы
- Правила формирования
- Свойства документа
- Свойства листа
- Свойства строки
- Свойства ячейки
- Персональные PDF-документы
- Персональные прикрепляемые файлы
- Вставка QR-кода
- Вставка штрих-кода
- Внешние данные персонализации выпуска
- Указание в шаблоне
- Указание в extra
- Обработка
- Дополнение общих параметров
- Дополнение анкетных данных
- Данные о товарах Яндекс.Маркет (формат YML)
- Дополнительно секция категорий
- Дополнительно секция подарков
- Дополнительно секция акций
- Пример одного товара подробнее
- Пример структуры со всеми секциями
- Динамический контент
- Описание
- Готовые страницы сайта
- Лента Новостей
- Использование лент новостей в Индивидуальных письмах
- Использование лент новостей в рассылках
- Доступные источники новостей для лент новостей
- Структура переменной lenta
- Описание
- Черновики выпусков
- Список черновиков
- Чтение черновика
- Создание или изменение черновика
- Удаление черновика
- Предпросмотр черновика
- Предпросмотр в EmailOnAcid
- Заказать генерацию предпросмотра
- Получить результат генерации
- Получить список доступных почтовых клиентов
- Получить список почтовых клиентов установленых по умолчанию
- Получить подробное описание почтовых клиентов
- Классы выпусков
- Список классов
- Чтение класса
- Создание или изменение класса
- Удаление класса
- Архив выпусков
- Список выпусков в архиве
- Чтение выпуска в архиве
- Получение файлов, приложенных к выпуску
- Настройка DKIM-ключей рассылок
- Список dkim-ключей
- Чтение dkim-ключа
- Создание dkim-ключа
- Удаление dkim-ключа
- Проверка настройки dkim-ключа
- Передача событий из системы клиенту (Callback, WebHook)
- Передача событий в Google Big Data
- Расширенная информация о выпуске
- Событые открытия письма
- Событие перехода по ссылке
- Событие отписки
- Событие подтверждение регистрации
- Событие доставки
- Событие заполнения формы
- Событие трекера
- Событие изменения черновика
- Сплит-тестирование
- Описание
- Параметры тестирования
- Параметры одного варианта письма
- Правила работы
- Список сплит-тестирований
- Создать сплит-тестрование
- Прочитать сплит-тестрование
- Изменить сплит-тестрование
- Удалить сплит-тестирование
- Выпустить победителя
- Список вариантов писем сплит-тестирования
- Создать вариант
- Прочитать вариант
- Изменить вариант
- Удалить вариант
- Описание
- Подписка на веб-пуш
- Рассылки через ВКонтакте
- Целевые страницы
- Статистика
- География и устройство подписчика
- Устройство подписчика
- География подписчика
- Статистика активности подписчиков
- Статистика выпусков
- Портрет аудитории
- Общая статистика по группе
- Универсальная статистика
- День недели, день года и неделя года, первый день недели
- Номер дня в неделе
- Номер дня в году
- Номер недели в году
- Первый день текущей недели
- Константа текущее время
- Сравнения с текущим временем
- Вычитание годов и месяцев
- Вычитание дней
- Округление часов
- Округление минут
- Правило вычисления current
- Примеры
- Статистика с точностью до каждого email/sms/viber/push/vk
- Доступные для использования поля
- Информация о домене
- Информация о подписчике
- Информация o группе
- Информация o выпуске
- Информация o кампании
- Информация o ссылке
- Информация o группе ссылок
- Информация о переходах
- Информация об открытии писем
- Информация о доставке и прочих свойствах каждого сообщения
- Информация об отписке
- Выданные промо-кода
- Информация о ряде данных
- Cтоп-лист
- Статистка заполнения форм опросов
- Общая информация об аккаунте
- Информация о последовательности (тригере)
- Информация о черновиках
- Комбинирование в одном запросе
- Сводная статистика
- День недели, день года и неделя года, первый день недели
- География и устройство подписчика
- Стоп-лист
- Чтение записей в стоп-листе владельца и подписчиков
- Внести в стоп-лист
- Удаление из стоп-листа
- Очистить стоп-лист
- Действия по расписанию
- Cписок действий по расписанию
- Чтение действия по расписанию
- Создание действия по расписанию
- Изменение действия по расписанию
- Удаление действия по расписанию
- Разовый запуск действия по расписанию
- Cобытийные действия / Триггерные рассылки
- Описание
- Введение
- Обработка событий
- Свойства последовательности
- Однократность
- Параллельность
- Закрытость
- Пауза
- Возобновляемость
- Статистика
- События
- Никогда
- Новая регистрация без подтверждения
- Новая регистрация c подтверждением
- Подтверждение регистрации
- Самостоятельное удаление регистрации
- Прошло временя
- Точное время
- Клик по ссылке
- Чтения письма
- Изменение данных
- Совпадение данных
- Форма заполнена
- Форма подтверждена
- Целевая страница достигнута
- Действия
- Ничего не делать
- Выслать письмо
- Вызвать внешнюю ссылку
- Изменить данные
- Внести в группу-список
- Удалить из группы списка
- Запустить параллельно ещё последовательность
- Остановить последовательность
- Уйти в другую последовательность
- Список последовательноcтей
- Cоздать последовательность
- Прочитать последовательность
- Изменить последовательность
- Удалить последовательность
- Получить список шагов
- Установить список шагов
- Начать прохождение последовательности
- Приостановить прохождение последовательности
- Возобновить прохождение последовательности
- Прервать прохождение последовательности
- Участие пользователя в последовательностях
- Описание
- Формы опросов
- Список форм
- Чтение формы
- Создание или изменение формы
- Удаление формы
- Получение кода формы для установки на сайте
- Перенос значений из анкеты-формы в анкеты-хранилища
- Хранилище файлов
- Cписок файлов
- Переименовать файл или каталог
- Получить файл
- Записать файл
- Удалить файл
- Cоздать каталог
- Удалить каталог
- Кампании
- Cписок кампаний
- Чтение кампании
- Создание/Изменение кампании
- Удаление кампании
- Cписок объектов кампании
- Добавить объект в кампанию
- Удалить объект из кампании
- Ряды данных
- Список рядов данных
- Чтение ряда данных
- Создание ряда данных
- Изменение ряда данных
- Удаление ряда данных
- Внесение записей в ряд данных
- Массовое удаление записей ряда данных
- Ленты Новостей
- Список лент
- Прочитать ленту
- Создать/изменить ленту
- Удаление ленты
- Добавление источника в ленту
- Удаление источника из ленты
- Обновление источника
- Тестовый выпуск ленты
- Шаблоны информационных писем
- Список шаблонов информационных писем
- Чтение шаблона информационного письма
- Создание или изменение шаблона информационного письма
- Удаление шаблона информационного письма
- Предпросмотр информационного письма
- Форматы просмотра и шаблоны заполнения
- Список форматов/шаблонов
- Чтение формата/шаблона
- Создание или изменение формата/шаблона
- Удаление формата/шаблона
- Ссылки
- Список ссылок
- Прочитать ссылку
- Создание ссылки
- Изменение ссылок
- Удаление ссылки
- Изменить участие ссылки в группах ссылок
- Группы ссылок
- Получить список групп ссылок
- Прочитать группу ссылок
- Создать группу ссылок / Изменить группу ссылок
- Удалить группу ссылок
- Шаблоны веб-страниц
- Список шаблонов веб-страниц
- Чтение шаблона веб-страницы
- Создание или изменение шаблона веб-страницы
- Удаление шаблона веб-страницы
- Внешние авторизации
- Список внешних авторизаций
- Чтение внешней авторизации
- Создание внешней авторизации
- Изменение внешней авторизации
- Удаление внешней авторизации
- Информация об авторизации в Google Analitics
- Система
- Получить настройки
- Поменять настройки
- Обращение в саппорт
- Cписок возможных прав пользователя
- Отправить пожелание Деду Морозу
- Дополнительные пользователи аккаунта
- Список пользователей
- Создание пользователя
- Чтение данных пользователя
- Изменение данных пользователя
- Удаление пользователя
- Изменение пароля себе
- Ключи api пользователей
- Создание/замена ключа api
- Чтение ключа api
- Удаление ключа api
- Права дополнительных пользователи
- Чтение прав пользователя
- Установка прав пользователя
- Журнал работы
- Хранимые данные
- Список хранимых данных
- Чтение хранимых данных
- Создание или изменение хранимых данных
- Удаление хранимых данных
- Ключи данных
- Синтаксис
- Преимущества
- Совместимость
- Возможные изменения
- Форматы данных
- Cкаляр
- null
- Массив (список)
- Объект (словарь)
- Пример структуры данных
- Хранение данных о подписчике
- Использвание в персонализации писем
- Фильтр отбора в группе (ДК)
- Пример
- Метки условий
- Условия объединения
- Условие И
- Условие ИЛИ
- Вхождение в состав группы
- Попадание в выборку Универсальной Статистики
- Целочисленое сравнение
- Cравнение «между»
- Строчное сравнение
- Совпадение подстроки
- Величина null
- Вхождение в список
- Пусто
- Процент аудитории
- Поиск по ключам объекта
- Итератор
- Множественные совпадения итератора has
- Работа с датой и временем
- Функция size()
- Обычный ключ
- По результатам has/save
- Функции агрегации
- Обычный ключ
- По результатам has/save
- Фильтр отбора в группе (АВО)
- Формальное описание
- Пример
- Условия объединения
- Условие И
- Условие ИЛИ
- Группа условий (скобки)
- Вхождение в состав группы
- Попадание в выборку Универсальной Статистики
- Любой из списка ответов
- Каждый из списка ответов
- Есть хоть один ответ
- Нет ни одного ответа
- Целочисленое сравнение
- Числено равно сегодня
- Дата равна сегодня
- Месяц и день равны сегодня
- Год равен текущему
- Месяц равен текущему
- День равен текущему
- Строка пуста
- Строка не пуста
- Cтрочное сравнение
- Наличие подстроки в строке
- Примеры запросов универсальной статистики
- Переходы по ссылкам
- Суммарное количество переходов по ссылкам
- Переходы по ссылкам за период с разбивкой по времени
- Переходы по каждой ссылке в выпуске
- Переходы по определенной ссылке
- Переходы определенного подписчика по ссылкам
- Чтения
- Все чтения выпуска
- Чтения выпуска за период с разбивкой по времени (по дням, месяцам, годам)
- Зафиксированные чтения выпусков подписчиками
- Доставка выпусков
- Успешная доставка
- Ошибки при доставке выпусков
- Доставка выпусков определенному подписчику
- Замена вызова stat.issue.delivering
- Сводные отчеты
- Суммарное число чтений, кликов по дням
- Суммарное число чтений, кликов по месяцам с 2011 года
- Суммарное число много чего по дате события
- Суммарное число много чего для даты выпуска
- Статистика активности по выпускам
- Запрос с объединением двух единичных запросов
- Переходы по ссылкам
- Форматы данных для импортирования и Экспресс-Выпуска
- Указание дат и времени для модели АВО
- Указание дат и времени для модели КД
- Присоединение или удаление дополнительных идентификаторов для модели АВО
- Присоединение или удаление дополнительных идентификаторов для модели КД
- Описание
- JSON-массив
- JSON-объект-АВО
- JSON-объект-КД
- XLSX
- CSV
- Порядок определения формата при использовании users.list
Документация по формату вызова и ответа API
Импорт заказа (сделки)
Метод предназначен для импорта данных, а не для оперативного управления объектами!
Импорт сделки находится по адресу:
https://{account_name}.getcourse.ru/pl/api/deals
Для добавления сделки необходимо передать действие add, секретный ключ, параметры сделки, параметры пользователя, для которого создается сделка:
curl -i -H «Accept: application/json; q=1.0, */*; q=0.1» «https://{account_name}.getcourse.ru/pl/api/deals» -data «action=add&key={secret_key}¶ms={params}»
base64_encode { "user":{ // как в импорте пользователя }, "system":{ "refresh_if_exists":0, // обновлять ли существующего пользователя 1/0 да/нет "partner_email":"email партнера (для пользователя)*", "multiple_offers":0, // добавлять несколько предложений в заказ 1/0 "return_payment_link":0, // возвращать ссылку на оплату 1/0 "return_deal_number":0 // возвращать номер заказа 1/0 }, "session":{ // как в импорте пользователя }, "deal":{ "deal_number":"номер заказа", "offer_code":"уникальный код предложения", "product_title":"наименование предложения", "product_description":"описание предложения", "quantity":1, // количество "deal_cost":"сумма заказа", "deal_status":"код статуса заказа", "deal_is_paid":"оплачен да/нет", "manager_email":"email менеджера", "deal_created_at":"дата заказа", "deal_finished_at":"дата оплаты/завершения заказа", "deal_comment":"комментарий", "payment_type":"тип платежа из списка", "payment_status":"статус платежа из списка", "partner_email":"email партнера (для заказа)", "addfields":{"Доп.поле1":"значение","Доп.поле2":"значение"}, // для добавления дополнительных полей заказа "deal_currency":"код валюты заказа" // например, "EUR", параметр не является обязательным, если он не используется в запросе - валютой заказа будут рубли (RUB) } }
Для импорта сделки обязательно должен существовать пользователь — владелец сделки.
Если переданный пользователь не существует — он создается.
Если существут пользователь с указанным email, то он используется как владелец заказа.
Если передан параметр system.refresh_if_exists == 1 И пользователь существует, то его данные будут обновлены аналогично операции импорта пользователя (за исключением объекта session — см. далее)
При импорте сделки проверяется, существует ли сделка с указанным номером.
В зависимости от этого создается новая сделка, или обновляется существующая.
Если флаг system.multiple_offers == 1 и обновляется существующий заказ, то переданные позиции в сделке добавляются к существующим, а не заменяют их.
Параметр system.refresh_if_exists никак не влияет на создание/обновление сделки (этот параметр используется только для пользователей!).
Объект session при импорте сделки содержит UTM-параметры, которые фиксируются как контекст создания заказа.
Дополнительно, если при импорте сделки происходит создание нового пользователя, то объект session используется так же и как контекст регистрации пользователя. Однако, при обновлении данных пользователя при импорте сделки объект session используется только для сделки, но не для пользователя.
Заказ может иметь указание на партнера, отличное от партнера пользователя. Партнер заказа может быть установлен двумя способами:
а) с помощью параметра deal.partner_email;
б) с помощью параметра session.gcpc (имеет более высокий приоритет).
Если указанный для сделки партнер существует, то для нее будет установлен этот партнер.
Если пользователь-партнер не существует — будет возвращена ошибка.
Если пользователь-партнер существует, но не является партнером, то указанный пользователь автоматически получит статус партнера.
Примеры запросов в REST API — Клеверенс
Последние изменения: 31.07.2020
Выберите уточнение:
Получение информации о базе
Для получения информации по текущей базе нужно выполнить запрос:
GET /api/v1/BaseInfo
Ответ:
{ "@odata.context": "http://172.19.0.30:9000/MobileSMARTS/api/v1/$metadata#BaseInfo", "id": "rtl15", "name": "Магазин 15, Базовый", "folder": "C:\ProgramData\Cleverence\Базы Mobile SMARTS\Магазин 15, Базовый", "appId": "F42C7B5F-405C-4076-AE07-9348F189EE71", "appName": "Магазин 15, Базовый", "comment": null, "allConnectionStrings": [ "https://172.19.0.30:10502/rtl15", "Доступ к swagger:" "https://172.19.0.30:10502/rtl15/swagger" ], "appDescription": { "appId": "F42C7B5F-405C-4076-AE07-9348F189EE71", "appName": "Магазин 15, Базовый", "desktopReqPayment": false, "configId": "8DC2C8BA-77CE-46AD-93CB-6CFFCA7B96D7", "serverModeSupported": true, "onlineCallsSupported": false, "batchModeSupported": true, "appLink": "http://cleverence.ru/software/mobile-smarts/rtl15/", "appSupportLink": "https://www.cleverence.ru/support/category:295/", "aboutLicLink": "http://cleverence.ru/software/mobile-smarts/rtl15/#spec", "appVersionsLink": "http://cleverence.ru/software/mobile-smarts/rtl15/#spec", "comment": "Основная поставка Магазин 15", "appVersion": "1.1.1.155", "clientVersion": "3.0.0.100", "panelVersion": "1.0", "mainServerVersion": "1.0", "appServerVersion": "3.0.0.2699", "minPlatformVersion": "1.0", "minPlatform35Version": "1.0" }, "appInstanceSettings": { "mode": "Server", "hasServerAuth": false, "serverSettings": { "dataService": { "enabled": true, "port": 9000, "useHttps": false, "deviceAuth": false, "passwordAuth": false }, "printService": { "enabled": false, "port": 9001, "useHttps": false, "deviceAuth": false, "passwordAuth": false } } } }
Группы пользователей
Работа с массивом
GET /api/v1/UserGroups
{ "@odata.context": "string", "value": [ { "id": "string", "name": "string", "documentTypeNames": [ "string" ], ": true, "role": 0, "serverSideInventory": true, "autorunDocumentTypeName": "string", "onStartHandlerName": "string", "onFinishHandlerName": "string" } ] }
Работа с записями по идентификатору
POST /api/v1/UserGroups(‘{key}’)
PUT /api/v1/UserGroups(‘{key}’)
PATCH /api/v1/UserGroups(‘{key}’)
DELETE /api/v1/UserGroups(‘{key}’)
UserGroup {
}
Получение списка пользователей группы
GET /api/v1/UserGroups(‘{key}’)/users
Пользователи
Работа с массивом
GET /api/v1/Users
Работа с записями по идентификатору
POST /api/v1/Users
PUT /api/v1/Users
PATCH /api/v1/Users
DELETE /api/v1/Users
User {
}
Ячейки
GET /api/v1/Cells — Список ячеек
Работа с записями по идентификатору
POST /api/v1/Cells — Добавить/редактировать ячейку
DELETE /api/v1/Cells(‘{id}’) — Удалить ячейку
GET /api/v1/Cells(‘{id}’) — Получить ячейку по идентификатору
PUT /api/v1/Cells(‘{id}’) — Добавь/редактировать ячейку по идентификатору
Обновление справочника со сбросом всех записей
POST /api/v1/Cells/BeginOverwrite — начинает процедуру пакетной выгрузки ячеек на сервер. Все позиции будут накапливаться и не будут доступны до вызова функции EndOverwrite.
POST /api/v1/Cells/EndOverwrite — завершает процедуру пакетной выгрузки номенклатуры. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Старый справочник товаров при этом будет полностью очищен.
Обновление записей
POST /api/v1/Cells/BeginUpdate — начинает процедуру пакетного обновления ячеек на сервере. Все позиции будут накапливаться и не будут доступны до вызова функции EndUpdate.
POST /api/v1/Cells/EndUpdate — завершает процедуру пакетного обновления ячеек. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Выгруженная номенклатура будет слита с существующим на сервере справочником.
Сброс обновления/ перезаписывания
POST /api/v1/Cells/ResetUpdate — сбрасывает процедуру пакетного обновления ячеек.
Номенклатура
Получение схемы
Получение списка всех полей номенклатуры:
https://localhost:9000/api/v1/ProductSchema?$expand=allfields
Получение полей номенклатуры:
https://localhost:9000/api/v1/ProductSchema?$expand=fields
Получение списка фиксированных полей:
https://localhost:9000/api/v1/ProductSchema?$expand=defaultFields
Работа с массивом
GET /api/v1/Products — список номенклатуры.
Работа с записями по идентификатору
POST /api/v1/Products — добавить/ редактировать номенклатуру.
DELETE /api/v1/Products(‘{id}’) — удалить номенклатуру.
GET /api/v1/Products(‘{id}’) — получить номенклатуру по идентификатору.
PUT /api/v1/Products(‘{id}’) — добавить/ редактировать номенклатуру по идентификатору.
Обновление справочника со сбросом всех записей
POST /api/v1/Products/BeginOverwrite — начинает процедуру пакетной выгрузки номенклатуры на сервер. Все позиции будут накапливаться и не будут доступны до вызова функции EndOverwrite.
POST /api/v1/Products/EndOverwrite — завершает процедуру пакетной выгрузки номенклатуры. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Старый справочник товаров при этом будет полностью очищен.
Обновление записей
POST /api/v1/Products/BeginUpdate — начинает процедуру пакетного обновления номенклатуры на сервере. Все позиции будут накапливаться и не будут доступны до вызова функции EndUpdate.
POST /api/v1/Products/EndUpdate — завершает процедуру пакетного обновления номенклатуры. Только после вызова этой функции сервер завершит обработку переданных позиций номенклатуры и они попадут в справочник товаров. Выгруженная номенклатура будет слита с существующим на сервере справочником.
Сброс обновления/ перезаписывания
POST /api/v1/Products/ResetUpdate — сбрасывает процедуру пакетного обновления номенклатуры.
Обновление номенклатуры таблицей значений
POST /api/v1/Products/BeginUploadProducts — начинает выгрузку позиций номенклатуры.
POST /api/v1/Products/AddProductToUpload — добавляет в выгрузку товаров товар с упаковкой.
POST /api/v1/Products/AddProductsToUpload — добавляет в выгрузку товаров товарs с упаковками.
POST /api/v1/Products/EndUploadProducts — завершает выгрузку товаров.
Таблицы
Работа с массивом
GET /api/v1/Tables/BiznesProcessy — получить все записи таблицы.
Работа с записями по идентификатору
POST /api/v1/Tables/BiznesProcessy — редактировать/ добавить запись.
DELETE /api/v1/Tables/BiznesProcessy(‘{uid}’) — удалить запись из таблицы.
GET /api/v1/Tables/BiznesProcessy(‘{uid}’) — получить запись по идентификатору.
PATCH /api/v1/Tables/BiznesProcessy(‘{uid}’) — редактировать запись.
PUT /api/v1/Tables/BiznesProcessy(‘{uid}’) — редактировать/добавить запись по известному идентификатору.
Обновление справочника со сбросом всех записей
POST /api/v1/Tables/BiznesProcessy/BeginOverwrite — начинает процедуру пакетной выгрузки строк таблицы на сервер. Все позиции будут накапливаться и не будут доступны до вызова функции EndOverwrite.
POST /api/v1/Tables/BiznesProcessy/EndOverwrite — завершает процедуру пакетной выгрузки строк таблицы. Только после вызова этой функции сервер завершит обработку переданных позиций и они попадут в таблицу. Старое содержимое при этом будет полностью очищено.
Обновление записей
POST /api/v1/Tables/BiznesProcessy/BeginUpdate — начинает процедуру пакетного обновления строк таблицы на сервере. Все передаваемые будут накапливаться и не будут доступны до вызова функции EndUpdate.
POST /api/v1/Tables/BiznesProcessy/EndUpdate — завершает процедуру пакетного обновления строк таблицы. Только после вызова этой функции сервер завершит обработку переданных позиций и они попадут таблицу. Выгруженные позиции будут слиты с существующей на сервере таблицей.
Сброс обновления\перезаписывания
POST /api/v1/Tables/BiznesProcessy/ResetUpdate — сбрасывает процедуру пакетного обновления строк таблицы.
Документы
Получение списка типов документов
GET /api/v1/DocTypes — список типов документов.
GET /api/v1/DocTypes(‘{uni}’) — получить тип документа по идентификатору.
Получение всех полей типа документа
https://localhost:9000/api/v1/DocTypes?$expand=allfields
Работа с массивом
GET /api/v1/Docs — список документов.
POST /api/v1/Docs редактировать/ добавить документ.
Работа с записями по идентификатору
DELETE /api/v1/Docs(‘{id}’) — удалить документ.
GET /api/v1/Docs(‘{id}’) — получить документ по идентификатору.
PATCH /api/v1/Docs(‘{id}’) — редактировать документ.
PUT /api/v1/Docs(‘{id}’) — редактировать/добавить документ по известному идентификатору.
Обновление записей
При любом редактировании документа, он сразу не сохраняется в систему. Сохранение происходит, если вызвать принудительное сохранение (EndUpdate), либо через 30 сек от последнего изменения.
POST /api/v1/Docs(‘{id}’)/EndUpdate — принудительно сохраняет документ, когда все строки уже загружены (не дожидаясь сохранения через 30 сек, как указано выше).
Получение строк документа
GET /api/v1/Docs(‘{key}’)/declaredItems — получить строк документа.
POST /api/v1/Docs({key})/declaredItems — редактировать/добавить строку документа.
Блокировка документа
POST /api/v1/Docs(‘{id}’)/Block — блокирует документ для совместной работы.
Тело запроса:
{«timeout»:1000}
, где timeout — время блокировки документа
POST /api/v1/Docs(‘{id}’)/Unblock — разблокирует документ для совместной работы.
Склады
Работа с массивом
GET /api/v1/Warehouses — получить список складов.
Работа с записями по идентификатору
POST /api/v1/Warehouses — добавление/ редактирование склада.
DELETE /api/v1/Warehouses(‘{id}’) — удаление склада.
GET /api/v1/Warehouses(‘{id}’) — получить конкретный склад.
PATCH /api/v1/Warehouses(‘{id}’) — редактирование существующего склада.
PUT /api/v1/Warehouses(‘{id}’) — добавление/ редактирование склада по существующему идентификатору.
Warehouse {
Получение информации о подключенных устройствах
GET /api/v1/Devices — список устройств.
DeviceInfo {
}
Настройки
GET /api/v1/CustomSettings — cписок настроек
Результат:
{ "@odata.context": "http://localhost:9000/MobileSMARTS/api/v1/$metadata#CustomSettings", "value": [ { "name": "testProp", "value": "testValue" } ] }
POST /api/v1/CustomSettings — Добавить/отредактировать настройку
Тело запроса:
{ "name": "testProp", "value": "testValue" }
Также можно добавлять массив настроек:
{ "value":[ { "name": "testProp", "value": "testValue" }, { "name": "testProp1", "value": "testValue1" } ] }
GET /api/v1/CustomSettings(‘{name}’) — получить настройку
Тело ответа:
{ "@odata.context": "http://localhost:9000/MobileSMARTS/api/v1/$metadata#CustomSettings/$entity", "name": "testProp", "value": "testValue" }
PUT /api/v1/CustomSettings(‘{name}’) — Добавить/отредактировать настройку по известному идентификатор.
Тело запроса:
{ "name": "testProp", "value": "testValue" }
DELETE /api/v1/CustomSettings(‘{name}’) — удалить настройку
Сообщения
Действия с сообщениями:
GET /api/v1/Messages — список сообщений.
POST /api/v1/Messages — добавить/отредактировать сообщение.
GET /api/v1/Messages(‘{id}’) — получить сообщение по идентификатору.
MessageInfo {
}
REST API — обзор инструментов реализации и документирования для разработчиков
Сегодня взаимодействие между сервисами различной направленности и уровня разработки через API — обыденное дело. Любой уважающий себя разработчик программного обеспечения хочет получать данные из других систем. Например, вендоры ПО для госзаказчиков просто обязаны обеспечить аутентификацию через ЕСИА (единую систему идентификации и аутентификации) и достичь этого можно только благодаря столь замечательному инструменту.
Мы подготовили для вас краткий обзор лучших решений для реализации и документирования API на данный момент.
OpenAPI
OpenAPI — спецификация для описания REST API. Также можно рассматривать OpenAPI как спецификацию DITA (Darwin Information Typing Architecture). DITA, в свою очередь, является инструментом для сборки документов из разрозненных фрагментов. Спецификация имеет элементы XML, используемые специально для определения компонентов справки.
В OpenAPI вместо привычного XML используется набор объектов JSON, который содержит определенную схему, определяющую их порядок, наименование и содержимое.
Элементы OpenAPI — paths
, parameters
, responses
и security
, являющиеся объектами JSON, содержат свойства и массивы.
Swagger
Для начала, стоит объяснить, о чем именно сейчас пойдет речь. Мы допускаем, что статью могут открыть те, кто только знакомится с данной областью и некоторые термины могут быть непонятны.
Swagger — оригинальное название спецификации OpenAPI, которая позже была изменена на OpenAPI, чтобы поддержать непатентованную природу стандарта. Теперь же Swagger — часть инструментов API, поддерживающих спецификацию OpenAPI, но напрямую к ней не относится. Несмотря на это, если вы скажете Swagger, а будете иметь ввиду OpenAPI — вас не осудят.
Вернемся к теме.
Swagger призван уменьшить объем работ, необходимый для соединения между несколькими службами и сократить время на документирование.
Его спецификация — документ с наименованием swagger.json, который создается при помощи цепочки инструментов на основе вашей службы. Файл описывает способы доступа к API через HTTP, управляет пользовательским интерфейсом выглядит примерно следующим образом:
{
"swagger": "2.0",
"info": {
"version": "v1",
"title": "API V1"
},
"basePath": "/",
"paths": {
"/api/Todo": {
"get": {
"tags": [
"Todo"
],
"operationId": "ApiTodoGet",
"consumes": [],
"produces": [
"text/plain",
"application/json",
"text/json"
],
"responses": {
"200": {
"description": "Success",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/TodoItem"
}
}
}
}
},
"post": {
…
}
},
"/api/Todo/{id}": {
"get": {
…
},
"put": {
…
},
"delete": {
…
},
"definitions": {
"TodoItem": {
"type": "object",
"properties": {
"id": {
"format": "int64",
"type": "integer"
},
"name": {
"type": "string"
},
"isComplete": {
"default": false,
"type": "boolean"
}
}
}
},
"securityDefinitions": {}
}
Swagger имеет свой пользовательский веб-интерфейс, содержащий сведения о созданной с помощью спецификации службе.
Здесь вы можете протестировать каждый созданный метод открытого действия. В режиме реального времени можно добавлять новые значения, задавать все необходимые параметры и тестировать их.
ReDoc
ReDoc также относится к инструментам OpenAPI, позволяющим облегчить жизнь разработчикам ПО. Вы уже поняли, что Swagger имеет очень дружественный веб-интерфейс, но развитие технологий требует трехпанельного конструктора документации, которым и является ReDoc.
Он также имеет полностью открытый и бесплатный исходный код, который можно использовать для своих целей.
Как мы уже сказали, ReDoc состоит из трех панелей: справочное меню, документацию по конечным методам, и различные образцы (запросов, ответов, кода).
Основная функция ReDoc — возможность документировать сложные запросы/ответы:
В нем также доступно создание вложенных схем и предусмотрена возможность перечисление ответов метода под заголовком самого метода и определенным цветом.
Спецификации создаются на основе JSON схемы, и поддерживают пользовательские версии кода, получаемые через расширения вендора.
Для того, чтобы использовать ReDoc, вам не потребуется BackEnd разработчик — все ресурсы (HTML, CSS, JS) объединены в один файл и доступны с CDN разработчика.
Вы можете легко добавлять пользовательские разделы в API-документы благодаря возможности вытягивать заголовки первого уровня из описания Swagger и даже использовать логотип вендора для документов.
Blueprint
Blueprint — мощный высокоуровневый язык описания API для веб-интерфейсов.
API Blueprint прост и доступен для всех, кто вовлечен в жизненный цикл API. Его синтаксис лаконичен, но выразителен. С помощью API Blueprint вы можете быстро проектировать и создавать прототипы API, тестировать уже развернутые критически важные API.
API Blueprint создан для поддержки диалога и сотрудничества между заинтересованными сторонами проекта, разработчиками и клиентами на любой стадии жизненного цикла API. В то же время инструменты API Blueprint обеспечивают поддержку для достижения целей, будь то разработка API, управление или поставка.
API Blueprint полностью открыт по лицензии MIT. Он не нуждается в закрытой рабочей группе. Вместо этого используется RFC-процесс, аналогичный Rust-языку или Django Enhancement Proposal RFC-процессы.
Тип носителя для API Blueprint — text / vnd.apiblueprint, а стандартное расширение файла — .apib. Если вы используете это расширение, ваши чертежи на GitHub будут выделены синтаксисом.
Пример того, как выглядит синтаксис описания данных:
# Data Structures
## Blog Post (object)
+ id: 42 (number, required)
+ text: Hello World (string)
+ author (Author) - Author of the blog post.
## Author (object)
+ name: Boba Fett
+ email: [email protected]
# Blog Posts [/posts]
## Retrieve All Posts [GET]
+ Response 200 (application/json)
+ Attributes (array[Blog Post])
Apiary
Apiary — инструмент ручной проверки API. Apiary использует в качестве разметки API blueprint и имеет удобный и качественный онлайн-редактор, позволяющий подставлять нужные параметры в формы, генерируемые на основе документации.
Примерная схема выглядит так:
Формат: 1A
# Message of the Day API
a simple [MOTD] ( https://en.wikipedia.org/wiki/motd ) API.
# Message [/messages / {id}]
этот ресурс представляет собой одно конкретное сообщение, идентифицируемое его *id* .
# # Извлечение сообщения [GET]
извлечение сообщения по его *id* .
+ Ответ 200 (текст/простой)
Привет Мир!
# # Удалить сообщение [удалить]
удалить сообщение.
* * Предупреждение: * * это действие * * навсегда * * удаляет сообщение из базы данных.
+ Ответ 204
Несмотря на все преимущества онлайн-редактора, разработчики сервиса оставили возможность использовать командную строку. С помощью нее можно проверять API Blueprint, просматривать документацию, публиковать ее на Apiary .
Если что-то пойдет не так с использованием API, у вендора есть возможность отправить запрос через прокси отладки и получить в ответ точные данные об ошибке, вплоть до уровня HTTP.
Apiary поддерживает возможность шеринга с товарищами по команде или клиентами для того, чтобы не пришлось писать дополнительный код.
Инструмент автоматически обновляет документацию API в соответствии с внесенными изменениями и передает коммиты в репозиторий каждый раз, когда обновляется документация на Apiary.
Snowboard
Snowboard — это парсер, анализатор и средство визуализации API. Он предлагает красочную тему по умолчанию, иллюстрирующую типы запросов API и ответы, а также может использоваться с пользовательскими шаблонами.
Он может быть интегрирован в процесс CI или использоваться непосредственно с их образом Docker.
Одна из замечательных возможностей Snowboard — это возможность определения шаблона, используемого для рендеринга HTML. Если вы используете Bootstrap (библиотеку компонентов внешнего интерфейса), вы можете сгенерировать ее, используя гармошку и группу списков для меню.
Slate
Slate — полностью настраиваемый фреймворк для создания текстовых редакторов. Он позволяет создавать интуитивно понятные, функциональные текстовые редакторы, такие как: Medium, Dropbox Paper или Google Docs, при этом не усложняя код.
Slate имеет интуитивно понятный и гибкий дизайн, позволяющий работать не только с компьютера, но и с телефона или планшета.
Разработчики Slate придерживаются режима одного окна и расположили все на одной странице. Несмотря на это, при пролистывании страниц, хэш браузера будет обновляться до ближайшего заголовка. Это делает ссылки на определенный пункт в документации достаточно простыми и удобными.
Slate — это Markdown и когда вы пишете на Slate, вы автоматически пишете и на этом языке разметки. Даже примеры кода написаны на нем.
Вы также можете писать примеры кода на нескольких языках, если ваш API поддерживает привязку к нескольким языкам программирования одновременно. Встроенная подсветка синтаксиса и название в верхней части каждого блока кода помогут вам определить текущий.
В Slate реализована возможность использовать плавные автоматические оглавления, которые работают без ущерба производительности.
Типы API
Web APIs
Web API — это API-интерфейсы, к которым можно получить доступ по протоколу HTTP. API определяет конечные точки, а также допустимые форматы запросов и ответов.
Web API включают в себя API-интерфейсы, используемые для связи с браузером (см. Список). Это могут быть такие службы, как веб-уведомления и веб-хранилище.
Различные Web API предоставляют различные уровни безопасности и конфиденциальности: открытые, внутренние, партнерские.
Open APIs
Open API доступны разработчикам и другим пользователям, при этом имеют минимальные ограничения. Они могут требовать регистрацию и использование ключа API, или быть полностью открытыми.
Такие API предназначены для внешних пользователей (например, для разработчиков из другой компании).
Internal APIs
В отличии от Open API, Internal API предназначены, для сокрытия от внешних пользователей и используются внутри компании. При помощи Internal API можно получить доступ к инструментам, данным и программам друг друга.
Использование внутренних API-интерфейсов имеет несколько преимуществ по сравнению с традиционными методами интеграции, включая безопасность и контроль доступа, контрольный журнал доступа к системе и стандартный интерфейс для подключения нескольких служб.
Partner APIs
Партнерские API технически похожи на открытые API, но имеют ограниченный доступ, часто управляемый через сторонний API-шлюз. Они обычно предназначены для определенной цели, например, для предоставления доступа к платным услугам. Это очень распространенная модель в программном обеспечении как сервисной экосистеме.
Composite APIs
Composite API позволяют разработчикам получать доступ к нескольким эндпоинтам за один вызов. Это могут быть разные эндпоинты одного API или несколько служб или источников данных.
Составные API особенно полезны в микросервисных архитектурах, где пользователю может потребоваться информация из нескольких сервисов для выполнения одной задачи. Использование составных API-интерфейсов может снизить нагрузку на сервер и повысить производительность приложений, поскольку один вызов может вернуть все данные, необходимые пользователю.
API архитектуры и протоколы
Протоколы API определяют принятые типы данных и команды. Различные архитектуры API определяются разными ограничениями протоколов.
REST
REST (representational state transfer) — очень популярная архитектура Web API. Для того, чтобы API подходил под данную архитектуру, необходимо придерживаться следующих правил:
- клиент-серверная архитектура: интерфейс отделен от серверной части хранилища данных. Это обеспечивает гибкость и развитие компонентов вне зависимости друг от друга;
- непривязанность: клиентский контекст не сохраняется на сервере между запросами;
- кэшируемость: необходимо явно указывать, можно ли клиенту кэшировать ответы;
- многоуровневость: API должен работать вне зависимости от того, взаимодействует он напрямую с сервером или через дополнительную прослойку, например, балансировщик нагрузки.
JSON-RPC и XML-RPC
RPC — это протокол удаленного процедурного вызова (remote procedural call protocol). XML-RPC использует XML для кодирования вызовов, в то время как JSON-RPC использует JSON. Оба протокола простые и могут содержать несколько параметров, ожидая в ответ всего один результат.
У них есть несколько ключевых функций, отличных от REST:
- они предназначены для вызова методов, тогда как протоколы REST предлагают передачу документов. Иными словами, REST работает с ресурсами, а RPC — с действиями;
- URI идентифицируется сервером, но не содержит информации в его параметрах, в то время как REST URI содержит параметры запроса.
SOAP
SOAP (simple object access protocol) — это установленный протокол Web API. Он должен быть расширяемым, нейтральным (поддерживать работы с протоколами HTTP, SMTP, TCP И другими) и независимым (допускать любой стиль программирования).
Спецификация SOAP включает в себя:
- модель обработки SOAP-сообщения;
- модель расширяемости возможностей и модулей SOAP;
- правила привязки протокола и то, как использовать SOAP с таким базовым протоколом, как HTTP;
- структурированность сообщений SOAP.
Обратите внимание, что можно создать RESTful API при использовании протоколов SOAP, хотя они считаются конкурирующими стандартами.
Курс по документированию REST API
Курс по документированию API. Вольный перевод курса Documenting APIs: a guide for technical writers, составленного Томом Джонсоном, техническим писателем Amazon. Переведен на русский язык.
Посты в блоге о REST API
Опыт работы с OpenAPI + Swagger от команд Яндекса
Специфицируй это. Доклад Яндекса.
(далее…)
Продолжить чтение
Опыт работы с OpenAPI + Swagger от команд Яндекса
Основы Node.JS для чайников – курс от GeekBrains
Серверное программирование на JavaScript
Продолжить чтение
Основы Node.JS для чайников – курс от GeekBrains
Курс по документированию REST API
Курс по документированию API. Вольный перевод курса Documenting APIs: a guide for technical writers, составленного Томом Джонсоном, техническим писателем Amazon.
(далее…)
Продолжить чтение
Курс по документированию REST API
1
оцените контент и участвуйте в выборе трендов
Обзор Apiary
Разработка Мощный стек разработки API. Создан для разработчиков
Подробнее…
Обзор Redoc REST API
Разработка Генератор документации по REST API через нотацию OpenAPI / Swagger
Подробнее…
Обзор Slate API Docs Generator
Хранение & Файлы Slate — красивая статическая документация для вашего API
Подробнее…
Обзор Swagger
Разработка Swagger — это программная среда с открытым исходным кодом, поддерживаемая большой экосистемой инструментов, которая помогает разработчикам проектировать, создавать, документировать и использовать веб-сервисы RESTful
Подробнее…
API Документация
Спасибо за выбор Salesap API. Данный API позволяет работать со всеми
основными объектами и настройками Salesap, благодаря чему вы можете быстро
создавать свои собственные приложения.
Получение API токена
Для корректной работы всех последующих примеров вам потребуется ключ для
доступа к Salesap API. Чтобы получить данный ключ перейдите в раздел
Настройки / Настройки API из
своего аккаунта.
Спецификация
Форматы запросов и ответов к API соответствуют спецификации
JSON API v1.0.
Общие принципы
Постраничный вывод (пагинация)
Пример ответа, содержащего мета данные о количестве объектов и количество страниц
{
"data" : [....],
"meta": {
"record-count": 13470,
"page-count": 270
}
}
Для перехода на вторую (третью, четвертую и тд) страницу, необходимо в адрес
запроса указывать параметр page[number]
, например, чтобы получить вторую страницу сделок
нужно GET запрос отправлять на адрес https://app.salesap.ru/api/v1/deals?page[number]=2.
Для изменения количества выводимых объектов на страницу нужно использовать параметр page[size]
,
по умолчанию размер страницы составляет 50 объектов, максимально допустимый 100 объектов.
GET запрос на адрес https://app.salesap.ru/api/v1/deals?page[size]=5 вернет 5 сделок.
Оба параметра page[number]
и page[size]
можно вызывать вместе, GET запрос на адрес
https://app.salesap.ru/api/v1/deals?page[number]=2&page[size]=2 вернет две сделки второй страницы.
Каждый ответ содержит не только ключ c данными (data), но и ключ с мета-данными (meta),
в котором хранится информация о общем количестве объектов (record-count
) запрашиваемой
сущности и о общем количестве страниц (page-count
).
Таким образом, на основании мета данных, можно строить логику деления объектов на страницы.
Чтобы авторизоваться используйте следующий код:
curl "https://app.salesap.ru/api/v1/deals" \
-H "Authorization: Bearer api_token"
Используйте полученный в настройках API токен вместо
api_token
.
Каждый запрос к API требует авторизации. Для авторизации необходим специальный
уникальный токен.
Токен авторизации необходимо передавать в заголовке Authorization
каждого запроса. Пример:
Authorization: Bearer access_api_token
Вместо access_api_token
вставьте ваш API токен.
Возвращает информацию о токене и настройках
curl "https://app.salesap.ru/api/v1/current-token" \
-H "Authorization: Bearer api_token"
Содержит в себе информацию о настройках приложения, что может быть полезно при работе с
приложениями из маркетплейса.
JSON API type | oauth-token |
URL | /api/v1/current-token |
Чтение | GET /api/v1/current-token |
Редактирование | PATCH /api/v1/current-token |
Пример токена с настройками
{
"data":{
"id":"29",
"type":"oauth-token",
"links":{
"self":"https://app.salesap.ru/api/v1/oauth-token/29"
},
"attributes":{
"created-at":"2020-02-20T17:11:16.129+03:00",
"updated-at":"2020-02-20T17:11:16.129+03:00",
"options":{
"delivery_date":"custom-5612",
"amount":"amount",
"aws_s3_secret":"topsecret"
},
"token":"1234567890abcdefapi_token",
"scopes":[
"profile_read",
"user_read",
"deal_write",
"order_write",
"dictionary_read"
],
"user-id":105
}
}
}
В данном примере каждый ключ в
options
идентичен названию ключа
в настройках приложения. Подробнее о настройках можно почитать
в Кабинете разработчика
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
token | string | fbc123de1123f | нет | API Access Token |
scopes | array | ["profile_read"] | нет | Разрешения |
options | json | {"key":"value"} | да | Настройки приложения |
user-id | integer | 105 | нет | ID пользователя владельца токена |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
Создание контакта с предустановленным источником и ответственным
curl "https://app.salesap.ru/api/v1/contacts" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contacts",
"attributes":{
"first-name":"Иван",
"last-name":"Петров"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
},
"responsible":{
"data":{
"type":"users",
"id":"1"
}
}
}
}
}
EOF
JSON API type | contacts |
URL | /api/v1/contacts |
Список | GET /api/v1/contacts |
Чтение | GET /api/v1/contacts/{id} |
Создание | POST /api/v1/contacts |
Редактирование | PATCH /api/v1/contacts/{id} |
Удаление | DELETE /api/v1/contacts/{id} |
Ниже приведен пример формата данных, в реальном ответе будут присутствовать
все перечисленные атрибуты
{
"data": {
"type":"contacts",
"id":"1",
"attributes":{
"first-name":"Иван",
"last-name":"Петров",
"work-phone":"+79001234567",
"customs":{
"custom-1":"5 собак",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"archived-at":null
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
first-name* | string | Иван | да | Имя |
last-name* | string | Иванов | да | Фамилия |
middle-name | string | Иванович | да | Отчество |
description | string | Описание | да | Описание |
general-phone | string | +79001234567 | да | Телефон (основной) |
mobile-phone | string | +79001234567 | да | Телефон (мобильный) |
work-phone | string | +79001234567 | да | Телефон (рабочий) |
work-phone-postfix | string | 200 | да | Добавочный (рабочий) |
other-phone | string | +79001234567 | да | Телефон (дополнительный) |
other-phone-postfix | string | 200 | да | Добавочный (дополнительный) |
fax | string | +79001234567 | да | Факс |
string | [email protected] | да | E-mail адрес | |
other-email | string | [email protected] | да | E-mail адрес (дополнительный) |
website | string | salesap.ru | да | Сайт |
customs | hash | {"custom-1":'custom value'} | да | Свои поля |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
archived-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата архивации |
discarded-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата перемещения в корзину |
* Обязательные поля
Рабочий адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
work-country | string | Свазиленд | да | Страна |
work-region | string | Московская обл. | да | Область, регион, край |
work-city | string | Челябинск | да | Город, населенный пункт |
work-zipcode | string | 100000 | да | Индекс |
work-street | string | ул. Печатников | да | Улица, проспект |
work-building | string | 12а | да | Номер дома |
work-housing | string | 3 | да | Корпус |
work-apartment | string | 123 | да | Номер офиса или квартиры |
Домашний адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
home-country | string | Свазиленд | да | Страна |
home-region | string | Московская обл. | да | Область, регион, край |
home-city | string | Челябинск | да | Город, населенный пункт |
home-zipcode | string | 100000 | да | Индекс |
home-street | string | ул. Печатников | да | Улица, проспект |
home-building | string | 12а | да | Номер дома |
home-housing | string | 3 | да | Корпус |
home-apartment | string | 123 | да | Номер офиса или квартиры |
Соц. сети и мессенджеры
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
vkontakte | string | vk.com/durov | да | ВКонтакте |
string | facebook.com | да | ||
string | ru.linkedin.com | да | Linked-in | |
odnoklassniki | string | да | Одноклассники | |
string | instagram.com | да | ||
string | twitter.com | да | ||
string | да | |||
viber | string | да | Viber | |
telegram | string | да | Telegram | |
skype | string | да | Skype |
Пример данных (перечислены не все связи)
{
"data": {
"type":"contacts",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/contacts/1/relationships/responsible",
"related":"/api/v1/contacts/1/responsible"
}
},
"contact-type":{
"links":{
"self":"/api/v1/contacts/1/relationships/contact-type",
"related":"/api/v1/contacts/1/contact-type"
}
}
}
}
}
Пример запроса с загруженными отвественными и типом контакта
curl "https://app.salesap.ru/api/v1/contacts?include=responsible,contact-type" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Источник | source | sources |
Компании | companies | companies |
Статус | status | contact-statuses |
Тип | contact-type | contact-types |
Сделки | deals | deals |
Заявки | orders | orders |
Продукты | products | products |
Спецификации | entities-products | entity-products |
Задачи | tasks | diary-tasks |
События | events | diary-events |
Соисполнители | performers | users |
Счета | invoices | invoices |
Получить список контактов с определённым рабочим номером
curl -G "https://app.salesap.ru/api/v1/contacts" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[work_phone]=+79969930000"
Фильтр | Описание | Пример |
---|---|---|
last-name | Вывести объекты по определенному last-name | filter[last-name]=Ivanov |
middle-name | Вывести объекты по определенному middle-name | filter[middle-name]=Ivanovich |
first-name | Вывести объекты по определенному first-name | filter[first-name]=Ivan |
work-phone | Вывести объекты по определенному work-phone | filter[work-phone]=+79969930000 |
mobile-phone | Вывести объекты по определенному mobile-phone | filter[mobile-phone]=+79969930000 |
other-phone | Вывести объекты по определенному other-phone | filter[other-phone]=+79969930000 |
any-phone | Вывести объекты в которых из одном из телефонных полей хранится значение any-phone | filter[any_phone]=+79969930000 |
Вывести объекты по определенному email | filter[email][email protected] | |
other-email | Вывести объекты по определенному other-email | filter[other-email][email protected] |
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
Создание статуса контакта
curl "https://app.salesap.ru/api/v1/contact-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contact-statuses",
"attributes":{
"name":"Статус контакта в API",
"color":"#000000"
}
}
}
EOF
JSON API type | contact-statuses |
URL | /api/v1/contact-statuses |
Список | GET /api/v1/contact-statuses |
Чтение | GET /api/v1/contact-statuses/{id} |
Создание | POST /api/v1/contact-statuses |
Редактирование | PATCH /api/v1/contact-statuses/{id} |
Удаление | DELETE /api/v1/contact-statuses/{id} |
Атрибуты
{
"data": {
"type":"contact-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Мой статус | да | Имя статуса контакта |
color | string | #1f2f3f | да | Цвет статуса контакта |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов контактов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/contact-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Создание типа контакта
curl "https://app.salesap.ru/api/v1/contact-types" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"contact-types",
"attributes":{
"name":"Тип контакта в API"
}
}
}
EOF
JSON API type | contact-types |
URL | /api/v1/contact-types |
Список | GET /api/v1/contact-types |
Чтение | GET /api/v1/contact-types/{id} |
Создание | POST /api/v1/contact-types |
Редактирование | PATCH /api/v1/contact-types/{id} |
Удаление | DELETE /api/v1/contact-types/{id} |
Атрибуты
{
"data": {
"type":"contact-types",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Мой тип контакта | да | Имя типа контакта |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список типов контактов созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/contact-types" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Создание компании с предустановленным источником и ответственным
curl "https://app.salesap.ru/api/v1/companies" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"companies",
"attributes":{
"name":"ООО Радужные единороги",
"description":"Коллекторское агенство"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
},
"responsible":{
"data":{
"type":"users",
"id":"1"
}
}
}
}
}
EOF
JSON API type | companies |
URL | /api/v1/companies |
Список | GET /api/v1/companies |
Чтение | GET /api/v1/companies/{id} |
Создание | POST /api/v1/companies |
Редактирование | PATCH /api/v1/companies/{id} |
Удаление | DELETE /api/v1/companies/{id} |
Атрибуты
{
"data": {
"type":"companies",
"id":"1",
"attributes":{
"created-at": "2015-12-21T23:25:30.691+03:00",
"updated-at": "2016-02-25T20:19:21.080+03:00",
"name": "ООО Рога",
"general-phone": null,
"work-phone": "7848200000",
"mobile-phone": null,
"other-phone": "78482000000",
"fax": null,
"country": "Россия",
"city": "Новосибирск",
"region": "Новосибирская область",
"address": "Ворошилова, 1, корп. 1",
"zip-code": null,
"email": "[email protected]",
"other-email": "[email protected]",
"website": "www.site.com",
"juristic-country": "Россия",
"juristic-region": "Новосибирская область",
"juristic-city": "Новосибирск",
"juristic-zip-code": "153512",
"juristic-street": "Ворошилова",
"juristic-house": "1",
"juristic-build": "1",
"juristic-office": "1",
"actual-country": null,
"actual-region": null,
"actual-city": null,
"actual-zip-code": null,
"actual-street": null,
"actual-house": null,
"actual-build": null,
"actual-office": null,
"mailing-country": "Россия",
"mailing-region": "Новосибирская область",
"mailing-city": "Новосибирск",
"mailing-zip-code": "382662",
"mailing-street": "Ворошилова",
"mailing-house": "1",
"mailing-build": "1",
"mailing-office": "1",
"inn": null,
"description": null,
"full-name": null,
"short-name": null,
"ogrn": null,
"kpp": null,
"okved": null,
"manager-name": null,
"manager-position": null,
"lawfulness-base": null,
"accountant": null,
"customs": {
"custom-98": "",
"custom-9": ""
},
"archived-at": null
}
}
}
Основные атрибуты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Иван | да | Название |
description | string | Описание | да | Описание |
general-phone | string | +79001234567 | да | Телефон (основной) |
mobile-phone | string | +79001234567 | да | Телефон (мобильный) |
work-phone | string | +79001234567 | да | Телефон (рабочий) |
work-phone-postfix | string | 200 | да | Добавочный (рабочий) |
other-phone | string | +79001234567 | да | Телефон (дополнительный) |
other-phone-postfix | string | 200 | да | Добавочный (дополнительный) |
fax | string | +79001234567 | да | Факс |
string | [email protected] | да | E-mail адрес | |
other-email | string | [email protected] | да | E-mail адрес (дополнительный) |
website | string | salesap.ru | да | Сайт |
country | string | РФ | да | Страна |
region | string | Крымская обл. | да | Регион |
city | string | Тамбов | да | Город |
address | string | Молдавских партизан 13 | да | Адрес |
zip-code | string | 190001 | да | Индекс |
customs | hash | {"custom-1":'custom value'} | да | Свои поля |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
archived-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата архивации |
discarded-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата перемещения в корзину |
* Обязательные поля
Фактический адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
actual-country | string | Свазиленд | да | Страна |
actual-region | string | Московская обл. | да | Область, регион, край |
actual-city | string | Челябинск | да | Город, населенный пункт |
actual-zip-code | string | 100000 | да | Индекс |
actual-street | string | ул. Печатников | да | Улица, проспект |
actual-house | string | 12а | да | Номер дома |
actual-build | string | 3 | да | Корпус |
actual-office | string | 123 | да | Номер офиса |
Юридический адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
juristic-country | string | Свазиленд | да | Страна |
juristic-region | string | Московская обл. | да | Область, регион, край |
juristic-city | string | Челябинск | да | Город, населенный пункт |
juristic-zip-code | string | 100000 | да | Индекс |
juristic-street | string | ул. Печатников | да | Улица, проспект |
juristic-house | string | 12а | да | Номер дома |
juristic-build | string | 3 | да | Корпус |
juristic-office | string | 123 | да | Номер офиса |
Почтовый адрес
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
mailing-country | string | Свазиленд | да | Страна |
mailing-region | string | Московская обл. | да | Область, регион, край |
mailing-city | string | Челябинск | да | Город, населенный пункт |
mailing-zip-code | string | 100000 | да | Индекс |
mailing-street | string | ул. Печатников | да | Улица, проспект |
mailing-house | string | 12а | да | Номер дома |
mailing-build | string | 3 | да | Корпус |
mailing-office | string | 123 | да | Номер офиса |
Реквизиты
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
full-name | string | Общество с ограниченной ответственностью | да | Полное наименование |
short-name | string | ООО «Рога» | да | Короткое наименование |
inn | string | 62010101010101 | да | ИНН |
ogrn | string | 521300000000000 | да | ОГРН |
kpp | string | 62010101010101 | да | КПП |
okved | string | 234-456 | да | ОКВЭД |
director | string | Иванков И.И. | да | Директор |
accountant | string | Иванков И.И. | да | Бухгалтер |
lawfulness-base | string | да | Правомочность | |
manager-name | string | Крабов В.В. | да | ФИО руководителя |
manager-position | string | Официант | да | Должность руководителя |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"companies",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/contacts/1/relationships/responsible",
"related":"/api/v1/contacts/1/responsible"
}
},
"company-type":{
"links":{
"self":"/api/v1/contacts/1/relationships/company-type",
"related":"/api/v1/contacts/1/company-type"
}
}
}
}
}
Пример запроса с загруженными отвественными и типом компании
curl "https://app.salesap.ru/api/v1/companies?include=responsible,company-type" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Источник | source | sources |
Контакты | contacts | contacts |
Статус | status | company-statuses |
Тип | company-type | company-types |
Сделки | deals | deals |
Заявки | orders | orders |
Продукты | products | products |
Спецификации | entities-products | entity-products |
Задачи | tasks | diary-tasks |
События | events | diary-events |
Банк. реквизиты | bank-details | company-bank-details |
Соисполнители | performers | users |
Счета | invoices | invoices |
Фильтры
Получить список компаний с определённым рабочим номером
curl -G "https://app.salesap.ru/api/v1/companies" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[general_phone]=+79969930000"
Фильтр | Описание | Пример |
---|---|---|
inn | Вывести объекты по определенному номеру ИНН | filter[inn]=123456789 |
kpp | Вывести объекты по определенному номеру КПП | filter[kpp]=123456789 |
work-phone | Вывести объекты по определенному work-phone | filter[work-phone]=+79969930000 |
general-phone | Вывести объекты по определенному general-phone | filter[general-phone]=+79969930000 |
other-phone | Вывести объекты по определенному other-phone | filter[other-phone]=+79969930000 |
any-phone | Вывести объекты в которых из одном из телефонных полей хранится значение any-phone | filter[any_phone]=+79969930000 |
Вывести объекты по определенному email | filter[email][email protected] | |
other-email | Вывести объекты по определенному other-email | filter[other-email][email protected] |
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
Банковские реквизиты
Создание банковских реквизитов для компании
curl "https://app.salesap.ru/api/v1/company-bank-details" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"company-bank-details",
"attributes":{
"name":"test"
},
"relationships":{
"company":{
"data":{
"type":"companies",
"id":510571
}
}
}
}
}
EOF
JSON API type | company-bank-details |
URL | /api/v1/company-bank-details |
Список | GET /api/v1/company-bank-details |
Чтение | GET /api/v1/company-bank-details/{id} |
Создание | POST /api/v1/company-bank-details |
Редактирование | PATCH /api/v1/company-bank-details/{id} |
Удаление | DELETE /api/v1/company-bank-details/{id} |
Атрибуты
{
"data":{
"id": "1",
"type": "company-bank-details",
"attributes":{
"created-at": "2017-09-04T12:48:33.114+03:00",
"updated-at": "2017-09-04T12:48:33.114+03:00",
"name": "КАЛУЖСКОЕ ОТДЕЛЕНИЕ N8608 ПАО СБЕРБАНК",
"bank-name": "СБЕРБАНК РОССИИ КАЛУЖСКОЕ ОТДЕЛЕНИЕ № 8608",
"bik": "042908612",
"corr-number": "12345678900000000000",
"number": "12345678900000000000",
"is-default": true
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Мой статус | да | Название набора реквизитов |
bank-name | string | Sberbank | да | Имя банка |
bik | string | 11239393 | да | БИК банка |
corr-number | string | 1234566788888 | да | Корр. счет |
number | string | 1234567890987 | да | Номер счета |
is-default | boolean | true | да | Основные реквизиты? |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Связи
Загрузка банковских реквизитов по определенной компании (id = 100)
curl "https://app.salesap.ru/api/v1/companies/100/relationships/bank-details" \
-X GET \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token"
Название | Связь | JSON API type |
---|---|---|
Компания | company | companies |
При создании новых реквизитов связь company
должна обязательно быть
включена в relationships
. Создать реквизиты без привязанной компании невозможно!
Статусы
Создание статуса компании
curl "https://app.salesap.ru/api/v1/company-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"company-statuses",
"attributes":{
"name":"Статус компании в API",
"color":"#000000"
}
}
}
EOF
JSON API type | company-statuses |
URL | /api/v1/company-statuses |
Список | GET /api/v1/company-statuses |
Чтение | GET /api/v1/company-statuses/{id} |
Создание | POST /api/v1/company-statuses |
Редактирование | PATCH /api/v1/company-statuses/{id} |
Удаление | DELETE /api/v1/company-statuses/{id} |
Атрибуты
{
"data": {
"type":"company-statuses",
"id":"1",
"attributes":{
"created-at": "2016-11-26T12:07:51.572+03:00",
"updated-at": "2017-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Мой статус | да | Имя статуса компании |
color | string | #1f2f3f | да | Цвет статуса компании |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов компаний созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/company-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Типы
Создание типа компании
curl "https://app.salesap.ru/api/v1/company-types" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"company-types",
"attributes":{
"name":"Тип компании в API"
}
}
}
EOF
JSON API type | company-types |
URL | /api/v1/company-types |
Список | GET /api/v1/company-types |
Чтение | GET /api/v1/company-types/{id} |
Создание | POST /api/v1/company-types |
Редактирование | PATCH /api/v1/company-types/{id} |
Удаление | DELETE /api/v1/company-types/{id} |
Атрибуты
{
"data": {
"type":"company-types",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Мой тип компании | да | Имя типа компании |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список типов компаний созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/company-types" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Создание сделки с предустановленным источником
curl "https://app.salesap.ru/api/v1/deals" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deals",
"attributes":{
"name":"Сделка из API",
"planned-at":"2016-12-31"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
}
}
}
}
EOF
Создание сделки с привязанной заявкой
curl "https://app.salesap.ru/api/v1/deals" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deals",
"attributes":{
"name":"Сделка из API с привязанной заявкой"
},
"relationships":{
"orders": {
"data" : [{
"type": "orders",
"id": 35634
}]
}
}
}
}
EOF
Создание сделки с привязанными продуктами
curl "https://app.salesap.ru/api/v1/deals" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deals",
"attributes":{
"name":"Сделка из API с привязанными продуктами"
},
"relationships":{
"products": {
"data" : [{
"type": "products",
"id": 8187
}, {
"type": "products",
"id": 9018
}]
}
}
}
}
EOF
JSON API type | deals |
URL | /api/v1/deals |
Список | GET /api/v1/deals |
Чтение | GET /api/v1/deals/{id} |
Создание | POST /api/v1/deals |
Редактирование | PATCH /api/v1/deals/{id} |
Удаление | DELETE /api/v1/deals/{id} |
Атрибуты
{
"data": {
"type":"deals",
"id":"1",
"attributes":{
"name":"Квартира на Ленинском",
"description":"двушка в 15м доме",
"amount":4700000.0,
"number":16,
"planned-at":null,
"finished-at":"2016-11-26",
"customs":{
"custom-1":"5 собак",
"custom-943":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"archived-at":null
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string | Моя сделка | да | Имя сделки |
description | string | Описание сделки | да | Подробное описание сделки |
amount | decimal | 123.0 | да | Сумма сделки |
cost | decimal | 123.0 | да | Себестомость сделки |
profit | decimal | 123.0 | нет | Прибыль сделки |
number | integer | 16 | да | Номер сделки |
planned-at | date | 2016-01-29 | да | Планируемая дата закрытия |
finished-at | date | 2016-01-30 | да | Фактическая дата закрытия |
customs | hash | {"custom-1":'custom value'} | да | Свои поля |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
archived-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата архивации |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"deals",
"id":"1",
"relationships":{
"responsible":{
"links":{
"self":"/api/v1/deals/1/relationships/responsible",
"related":"/api/v1/deals/1/responsible"
}
},
"stage-category":{
"links":{
"self":"/api/v1/deals/1/relationships/stage-category",
"related":"/api/v1/deals/1/stage-category"
}
}
}
}
}
Пример запроса с загруженными источниками и отвественными
curl "https://app.salesap.ru/api/v1/deals?include=source,responsible" \
-H "Authorization: Bearer api_token"
Каждая связь может быть включена в JSON ответ через параметр include
, согласно
официальной спецификации JSON API Inclusion of Related Resources.
Название | Связь | JSON API type |
---|---|---|
Ответственный | responsible | users |
Создатель | user | users |
Компания | company | companies |
Контакт | contact | contacts |
Этап | stage | deal-stages |
Воронка | stage-category | deal-stage-categories |
Источник | source | sources |
Статус | status | deal-statuses |
Причина поражения | loss-reason | deal-loss-reasons |
Конкурент поражения | loss-competitor | competitors |
Территория | area | areas |
Продукты | products | products |
Сделки | deals | deals |
Заявки | orders | orders |
Спецификации | entities-products | entity-products |
Соисполнители | performers | users |
Задачи | tasks | diary-tasks |
Файлы | documents | documents |
Счета | invoices | invoices |
Фильтры
Получить список сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deals" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
responsible-id | Вывести объекты по определенному ответственному | filter[responsible-id]=14 |
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
table-state-id | Вывести объекты по заданному табличному фильтру | filter[table-state-id]=14 |
q | Вывести объекты по поисковому запросу | filter[q]=some-query |
Причины поражения
Создание причины поражения сделок
curl "https://app.salesap.ru/api/v1/deal-loss-reasons" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-loss-reasons",
"attributes":{
"name":"Ушел к конкуренту"
}
}
}
EOF
JSON API type | deal-loss-reasons |
URL | /api/v1/deal-loss-reasons |
Список | GET /api/v1/deal-loss-reasons |
Чтение | GET /api/v1/deal-loss-reasons/{id} |
Создание | POST /api/v1/deal-loss-reasons |
Редактирование | PATCH /api/v1/deal-loss-reasons/{id} |
Удаление | DELETE /api/v1/deal-loss-reasons/{id} |
Атрибуты
{
"data": {
"type":"deal-loss-reasons",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Ушёл к конкуренту"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Отказался от услуг | да | Название причины поражения сделки |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список причин поражений сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-loss-reasons" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Воронки
Создание новой категории этапов сделки
curl "https://app.salesap.ru/api/v1/deal-stage-categories" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-stage-categories",
"attributes":{
"name":"Воронка из API"
}
}
}
EOF
JSON API type | deal-stage-categories |
URL | /api/v1/deal-stage-categories |
Список | GET /api/v1/deal-stage-categories |
Чтение | GET /api/v1/deal-stage-categories/{id} |
Создание | POST /api/v1/deal-stage-categories |
Редактирование | PATCH /api/v1/deal-stage-categories/{id} |
Удаление | DELETE /api/v1/deal-stage-categories/{id} |
Атрибуты
{
"data": {
"type":"deal-stage-categories",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Воронка",
"calculation-method": "by_billings",
"is-default": true,
"win-by-diaries": false
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | на Мира | да | Название воронки |
amount-calc-method* | string | invoices | да | Способ расчета суммы сделки |
cost-calc-method* | string | payments | да | Способ расчета себестоимости сделки |
amount-calc-field | string | custom_1 | да | Поле формулы при расчете суммы сделки по формуле |
cost-calc-field | string | custom_2 | да | Поле формулы при расчете себестоимости сделки по формуле |
is-default | boolean | true | да | По-умолчанию |
win-by-diaries | boolean | false | да | Cчитать сделку выиграной, eсли все задачи выполнены |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Ограничения по значениям
Аттрибут | Варианты |
---|---|
amount-calc-method | manually , invoices , products , payments , formula |
cost-calc-method | manually , products , payments , formula |
Фильтры
Получить список категорий этапов сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-stage-categories" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Этапы
Создание нового этапа сделки
curl "https://app.salesap.ru/api/v1/deal-stages" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-stages",
"attributes":{
"name":"Этап из API"
},
"relationships":{
"deal-stage-category": {
"data": {
"type": "deal-stage-categories",
"id": 1
}
}
}
}
}
EOF
JSON API type | deal-stages |
URL | /api/v1/deal-stages |
Список | GET /api/v1/deal-stages |
Чтение | GET /api/v1/deal-stages/{id} |
Создание | POST /api/v1/deal-stages |
Редактирование | PATCH /api/v1/deal-stages/{id} |
Удаление | DELETE /api/v1/deal-stages/{id} |
Атрибуты
{
"data": {
"type":"deal-stages",
"id":"1",
"attributes":{
"created-at": "2017-07-31T14:23:02.458+03:00",
"updated-at": "2017-07-31T14:23:02.458+03:00",
"name": "Открыта",
"description": null,
"duration": null,
"color": "#e0e0e0",
"next-if-items-done": false
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | на Мира | да | Название воронки |
duration | integer | 10000 | да | Длительность этапа |
next-if-items-done | boolean | false | да | Переходить на следующий этап, если все задачи выполнены |
description | boolean | true | да | Описание |
color | string | #ee66aa | да | Цвет этапа |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список этапов сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-stages" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Статусы
Создание статуса сделки
curl "https://app.salesap.ru/api/v1/deal-statuses" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"deal-statuses",
"attributes":{
"name":"Статус сделки в API",
"color":"#000000"
}
}
}
EOF
JSON API type | deal-statuses |
URL | /api/v1/deal-statuses |
Список | GET /api/v1/deal-statuses |
Чтение | GET /api/v1/deal-statuses/{id} |
Создание | POST /api/v1/deal-statuses |
Редактирование | PATCH /api/v1/deal-statuses/{id} |
Удаление | DELETE /api/v1/deal-statuses/{id} |
Атрибуты
{
"data": {
"type":"deal-statuses",
"id":"1",
"attributes":{
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00",
"name": "Новый",
"color": "#c62356"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name* | string | Мой статус | да | Имя статуса сделки |
color | string | #1f2f3f | да | Цвет статуса сделки |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
* Обязательные поля
Фильтры
Получить список статусов сделок созданных до определённой даты
curl -G "https://app.salesap.ru/api/v1/deal-statuses" \
-X GET \
-H "Authorization: Bearer api_token" \
--data-urlencode "filter[created-at-gte]=2017.08.01 12:00"
Фильтр | Описание | Пример |
---|---|---|
created-at-gte | Вывести объекты созданные после указанного времени | filter[created-at-gte]=2017.08.01 12:00 |
created-at-lte | Вывести объекты созданные до указанного времени | filter[created-at-lte]=2017.08.01 12:00 |
updated-at-gte | Вывести объекты обновлённые после указанного времени | filter[updated-at-gte]=2017.08.01 12:00 |
updated-at-lte | Вывести объекты обновлённые до указанного времени | filter[updated-at-lte]=2017.08.01 12:00 |
Создание заявки с предустановленным источником
curl "https://app.salesap.ru/api/v1/orders" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"orders",
"attributes":{
"name":"Заявка из API",
"archived-at":"2016-12-31"
},
"relationships":{
"source":{
"data":{
"type":"sources",
"id":"1"
}
}
}
}
}
EOF
Создание заявки с предустановленной сделкой
curl "https://app.salesap.ru/api/v1/orders" \
-X POST \
-H "Content-Type: application/vnd.api+json" \
-H "Authorization: Bearer api_token" \
-d @- << EOF
{
"data":{
"type":"orders",
"attributes":{
"name":"Заявка из API с предустановленной сделкой",
"archived-at":"2016-12-31"
},
"relationships":{
"deals": {
"data" : [{
"type": "deals",
"id": 33435
}]
}
}
}
}
EOF
JSON API type | orders |
URL | /api/v1/orders |
Список | GET /api/v1/orders |
Чтение | GET /api/v1/orders/{id} |
Создание | POST /api/v1/orders |
Редактирование | PATCH /api/v1/orders/{id} |
Удаление | DELETE /api/v1/orders/{id} |
Атрибуты
{
"data": {
"type":"orders",
"id":"1",
"attributes":{
"name":"Уборка квартиры",
"description":"на Ленинском в 15м доме",
"amount":"5000.0",
"number":21,
"archived-at":"2016-11-26",
"customs":{
"custom-11":"5 собак",
"custom-43":"2016-11-26T12:07:51.572+03:00"
},
"created-at":"2016-11-26T12:07:51.572+03:00",
"updated-at":"2016-11-26T12:07:51.572+03:00"
}
}
}
Имя | Тип | Пример | Запись | Описание |
---|---|---|---|---|
name | string | Моя сделка | да | Имя заявки |
description | string | Описание сделки | да | Подробное описание заявки |
amount | decimal | 123.0 | да | Сумма заявки |
number | integer | 16 | да | Номер заявки |
customs | hash | {"custom-1":'custom value'} | да | Свои поля |
created-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата создания |
updated-at | datetime | 2016-11-26T12:07:51.572+03:00 | нет | Дата обновления |
archived-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата архивации |
discarded-at | datetime | 2016-11-26T12:07:51.572+03:00 | да | Дата перемещения в корзину |
Связи
Пример данных (перечислены не все связи)
{
"data": {
"type":"orders",
"id":"1"
Developer Interface — Requests 2.25.0 документация
Эта часть документации охватывает все интерфейсы запросов. За
части, где запросы зависят от внешних библиотек, мы документируем большую часть
важно прямо здесь и дать ссылки на каноническую документацию.
Главный интерфейс
Доступ ко всем функциям запросов можно получить с помощью этих 7 методов.
Все они возвращают экземпляр объекта Response
.
-
запросов.
запрос
( метод , url , ** kwargs ) [источник] Создает и отправляет
Request
.Параметры: - method — метод для нового объекта
Request
:GET
,OPTIONS
,HEAD
,POST
,PUT
,PATCH
,PATCH
УДАЛИТЬ
. - url — URL для нового объекта
Request
. - params — (необязательно) Словарь, список кортежей или байтов для отправки
в строке запросаRequest
. - данные — (необязательно) словарь, список кортежей, байтов или файловый
объект для отправки в телеЗапрос
. - json — (необязательно) сериализуемый объект Python в формате JSON для отправки в теле запроса
- заголовков — (необязательно) Словарь заголовков HTTP для отправки с запросом
- cookies — (необязательно) объект Dict или CookieJar для отправки с
Request
. - файлов — (необязательно) Словарь
'name': file-like-objects
(или{'name': file-tuple}
) для загрузки составной кодировки.
кортеж файлов
может быть кортежем из 2 частей('filename', fileobj)
, 3-кортежем('filename', fileobj, 'content_type')
или 4-кортеж('filename', fileobj, 'content_type', custom_headers)
, где'content-type'
— строка
определение типа содержимого данного файла иcustom_headers
dict-подобный объект, содержащий дополнительные заголовки
добавить для файла. - auth — (необязательно) Кортеж аутентификации для включения базовой / дайджест-/ настраиваемой HTTP-аутентификации.
- timeout ( float or tuple ) — (необязательно) Сколько секунд ждать, пока сервер отправит данные
перед тем, как сдаться, в виде числа с плавающей запятой или (время ожидания соединения, чтение
тайм-аут) кортеж. - allow_redirects ( bool ) — (необязательно) Boolean. Включение / отключение перенаправления GET / OPTIONS / POST / PUT / PATCH / DELETE / HEAD. По умолчанию
True
. - прокси — (необязательно) протокол сопоставления словаря с URL-адресом прокси.
- verify — (необязательно) Либо логическое, и в этом случае оно определяет, проверяем ли мы
сертификат TLS сервера или строка, в этом случае это должен быть путь
в пакет CA для использования. По умолчаниюTrue
. - stream — (необязательно), если
False
, содержимое ответа будет немедленно загружено. - сертификат
- method — метод для нового объекта
API — Запросы 0.6.2 документация
Эта часть документации охватывает все интерфейсы запросов. За
части, где запросы зависят от внешних библиотек, мы документируем большую часть
важно прямо здесь и дать ссылки на каноническую документацию.
Главный интерфейс
Доступ ко всем функциям запроса можно получить с помощью этих 6 методов. Oни
все возвращают объект Response.
- request.head ( url , ** kwargs )
Отправляет запрос HEAD.Возвращает объект ответа.
Параметры: - url — URL для нового объекта Request.
- params — (необязательно) Словарь параметров или байтов, которые должны быть отправлены в строке запроса для Request.
- заголовков — (необязательно) Словарь заголовков HTTP, отправляемых с запросом.
- cookies — (необязательно) объект Dict или CookieJar для отправки с запросом.
- auth — (необязательно) AuthObject для включения базовой HTTP-аутентификации.
- timeout — (необязательно) Число с плавающей запятой, описывающее время ожидания запроса.
- allow_redirects — (необязательно) логический. Установите значение False, чтобы отключить отслеживание перенаправления.
- прокси — (необязательно) протокол сопоставления словаря с URL-адресом прокси.
- request.get ( url , ** kwargs )
Отправляет запрос GET. Возвращает объект ответа.
Параметры: - url — URL для нового объекта Request.
- params — (необязательно) Словарь параметров или байтов, которые должны быть отправлены в строке запроса для Request.
- заголовков — (необязательно) Словарь заголовков HTTP для отправки с запросом.
- cookies — (необязательно) объект Dict или CookieJar для отправки с запросом.
- auth — (необязательно) AuthObject для включения базовой HTTP-аутентификации.
- timeout — (необязательно) Число с плавающей запятой, описывающее время ожидания запроса.
- allow_redirects — (необязательно) логический. Установите значение False, чтобы отключить отслеживание перенаправления.
- прокси — (необязательно) протокол сопоставления словаря с URL-адресом прокси.
- request.post ( url , data = » , ** kwargs )
Отправляет запрос POST.Возвращает объект ответа.
Параметры: - url — URL для нового объекта Request.
- данные — (необязательно) Словарь или байты для отправки в теле запроса.
- заголовков — (необязательно) Словарь заголовков HTTP, отправляемых с запросом.
- файлов — (необязательно) Словарь «имени файла»: объекты, подобные файлам, для загрузки многокомпонентного кодирования.
- cookies — (необязательно) объект Dict или CookieJar для отправки с запросом.
- auth — (необязательно) AuthObject для включения базовой HTTP-аутентификации.
- timeout — (необязательно) Число с плавающей запятой, описывающее время ожидания запроса.
- allow_redirects — (необязательно) логический. Установите значение True, если разрешено отслеживание перенаправления.
- params — (необязательно) Словарь параметров или байтов, которые должны быть отправлены в строке запроса для Request.
- прокси — (необязательно) протокол сопоставления словаря с URL-адресом прокси.
- request.put ( url , data = » , ** kwargs )
Отправляет запрос PUT. Возвращает объект ответа.
Параметры: - url — URL для нового объекта Request.
- данные — (необязательно) Словарь или байты для отправки в теле запроса.
- заголовков — (необязательно) Словарь заголовков HTTP, отправляемых с запросом.
- файлов — (необязательно) Словарь «имени файла»: объекты, подобные файлам, для загрузки многокомпонентного кодирования.
- cookies — (необязательно) объект Dict или CookieJar для отправки с запросом.
- auth — (необязательно) AuthObject для включения базовой HTTP-аутентификации.
- timeout — (необязательно) Число с плавающей запятой, описывающее время ожидания запроса.
- allow_redirect
Content API / Request API Access
Tripadvisor предоставляет только ограниченное количество ключей API и не разрешает доступ к Content API для следующих целей:
— Анализ данных
— Научные исследования
— Любое использование, не связанное с туристическим веб-сайтом или приложением, ориентированным на потребителя (B2C)
Чтобы запросить доступ к Tripadvisor API, заполните форму запроса доступа к API.
Из-за большого количества запросов, мы не можем отвечать на неполные или содержащие недостаточную информацию заявки .
Убедитесь, что все поля полностью заполнены, что в вашем запросе указан рабочий URL и что ваше предполагаемое использование материалов Tripadvisor полностью объяснено. Чтобы получить право на использование API, ваш веб-сайт или приложение должны соответствовать критериям, изложенным в Условиях использования API, и получать достаточное количество уникальных посетителей в месяц.После отправки наша команда рассмотрит ваш запрос.
Квалифицированные сайты получат электронное письмо с временным ключом API, который разрешает ограниченный доступ к API для 1000 вызовов в день — этот ключ должен использоваться только в целях разработки.
После того, как контент Tripadvisor будет интегрирован на ваш тестовый сайт, вы должны связаться с нами и предоставить ссылку (и любую необходимую информацию для входа), чтобы мы могли предварительно просмотреть вашу интеграцию и убедиться, что она соответствует нашим требованиям к отображению API.
Сайты, отвечающие всем требованиям, получат электронное письмо с подтверждением, что в течение трех рабочих дней их ключ API будет обновлен, чтобы разрешить 10 000 звонков в день.
Интеграции, которые не соответствуют требованиям отображения, будет предложено изменить их интеграцию и повторно отправить свой запрос на запуск.
Обратите внимание, что сайты, которые не отправят запрос на запуск в течение шести месяцев после получения временного ключа, будут лишены доступа к API.
Tripadvisor не может предоставить поддержку в разработке для отдельных сайтов. За помощью обратитесь к документации по API и в нашу группу Content API Google.
.