REST интерфейс
Платформа может автоматически формировать REST интерфейс для всего прикладного решения. После того, как прикладное решение опубликовано на веб-сервере, сторонние системы могут обращаться к нему через REST интерфейс с помощью HTTP запросов. Благодаря универсальности и кроссплатформенности автоматически генерируемый REST интерфейс является основным инструментом для интеграции со сторонними системами.
REST интерфейс позволяет читать данные 1С:Предприятия, изменять их, создавать новые объекты данных и удалять существующие.
Автоматический REST интерфейс может использоваться для таких задач как:
- Интеграция прикладного решения с интернет-сайтами и интернет-магазинами;
- Реализация сторонними средствами дополнительной функциональности прикладного решения без изменения его конфигурации;
- Загрузка данных в прикладное решение и выгрузка данных из него;
- Интеграция прикладного решения с корпоративными системами, возможно даже без дополнительного программирования.
Типичные операции, выполняемые через REST интерфейс это:
- Получение списка документов, справочников, записей регистра сведений и т.п., возможно с фильтром;
- Получение данных элемента справочника, документа (по ссылке), данных записи независимого регистра сведений (по ключу), данных набора записей подчинённого регистра (по регистратору);
- Редактирование данных одного элемента справочника, документа и другого ссылочного объекта;
- Создание нового элемента справочника, документа, набора записей;
- Проведение одного документа, старт бизнес-процесса.
В качестве протокола доступа платформа использует протокол OData версии 3.0. Это открытый веб-протокол для запроса и обновления данных. Он позволяет оперировать данными, используя в качестве запросов HTTP-команды. Получать ответы можно в формате Atom/XML или JSON.
В платформе реализована только серверная часть REST сервисов. То есть прикладное решение может автоматически поставлять свою функциональность через REST сервисы. Для взаимодействия со сторонними REST сервисами из «1С:Предприятия 8» (для организации клиентской части) можно использовать имеющиеся в платформе средства работы с HTTP.
Основная задача REST интерфейса прикладных решений заключается в интеграции со сторонними системами. И тут проблемы не возникает, ведь клиенты OData существует практически
для всех значимых платформ:
- Мобильные: iOS, Windows Phone, Android;
- Серверные/настольные: .NET, Java, PHP, Objective-C, Ruby, JavaScript;
- Поддержка в системах управления содержимым (CMS): Drupal, Joomla.
Использовать стандартный интерфейс OData прикладного решения просто:
- В конфигураторе REST интерфейс публикуется на веб-сервере;
- После этого объекты прикладного решения становятся доступны через этот интерфейс;
- Способы аутентификации OData клиентов полностью совпадают со способами, используемыми для веб-сервисов;
- OData клиенты могут запросить через HTTP документ метаданных, описывающий доступные объекты прикладного решения;
- OData клиенты выполняют операции создания, чтения, модификации и удаления данных прикладного решения.
В REST интерфейсе доступны практически все основные объекты конфигурации: справочники, документы, константы, перечисления, планы обмена, регистры накопления, расчета, бухгалтерии и сведений, виртуальные таблицы периодического регистра сведений, регистров бухгалтерии и регистров накопления, планы счетов, видов характеристик и видов расчета, бизнес-процессы, задачи и журналы документов.
В REST интерфейсе доступны реквизиты объектов конфигурации, доступны операции создания, чтения, модификации и удаления данных, а также некоторые методы встроенного языка. Например:
- Для документа — проведение и отмена проведения;
- Для задачи — выполнение;
- Для бизнес-процесса — старт;
- Для регистра сведений — получение среза первых и среза последних;
- Для регистра накопления и регистра бухгалтерии — получение остатков, оборотов, остатков и оборотов;
- Для регистра расчета — получение данных графика, фактического периода действия, перерасчета и базы.
В случае ошибочной ситуации «1С:Предприятие 8» возвращает ответ с HTTP-статусом 4XX или 5XX. Статус 4XX говорит о неверных действиях клиента, статус 5XX — об ошибке на сервере. В случае статуса 4XX «1С:Предприятие 8» пытается помочь клиенту понять причину ошибки и может передать дополнительный внутренний код ошибки и информационное сообщение.
При чтении и записи данных с помощью REST интерфейса платформа выполняет все обычные проверки прав и вызывает обработчики событий, за исключением проверки заполнения.
При получении списков данных можно использовать стандартные условия фильтрации ODATA запросов. Например, получить товары, у которых цена меньше или равна 3,5 или больше 200:
GET /OData_Tests_Infobase/odata/standard.odata/Catalog_Goods?$filter=Price le 3.5 or Price gt 200