Перейти к содержанию

Основы работы OData#

Для начала нам необходимо освоить специальную терминологию работы с OData.
Будут использованы следующие термины:
* Сущность – объект, который обладает уникальностью (аналог объектов в системе «1С Предприятие»). Сущность имеет набор свойств, по которым и можно определить её уникальность. Поиск объекта осуществляется по уникальному ключу.
* Набор сущностей – коллекция сущностей определенного типа.
* Составной тип – набор свойств, не обладающих идентичностью.
* Функция - набор некоторых операций, выполняемых на стороне сервера, возвращающий данные (не обязательно сущность или набор сущностей) и не приводящий к наблюдаемым побочным эффектам (изменениям данных). Функция обязательно связана с сущностью или набором сущностей.
* Действие – функция, которая изменяет данные.

Также стоит отдельно отдельно рассмотреть свойства сущности.
Свойства сущности - это реквизиты объектов «1С Предприятия». В некоторых случаях (например, реквизит объекта конфигурации составного типа) реквизит может быть представлен несколькими свойствами, одно из которых будет навигационным.
Такое свойство содержит в качестве значения ссылку (URL) на сущность, описывающую объект «1С:Предприятия».

Для подключения к OData используем HTTP-запрос и URL, который будет состоять из следующих частей:
* Адрес информационной базы;
* Признак обращения к стандартному интерфейсу OData;
* Имя ресурса, к которому выполняется обращение;
* Параметры запроса обращения к ресурсу.

Теперь рассмотрим каждую из частей отдельно:
Адрес информационной базы.
Указываем имя, которое было указано во время публикации информационной базы (в примере – smallbusiness).

Признак обращения к стандартному интерфейсу OData.
Используем строку:
/odata/standard.odata

Имя ресурса, к которому выполняется обращение.
Указываем ресурс, по которому нужно получить или изменить данные. Так же можно ввести идентификатор ресурса (возможно с параметрами):
$metadata, Catalog_Контрагент(guid'value'

Параметры запроса обращения к ресурсу.
В качестве параметров обращения выступают параметры в виде, принятом для HTTP-запросов:
?ключ=значение&ключ2=значение2
При обращении к ресурсу могут использоваться специальные ключевые слова, имеющие специальное назначение:
* $format – указывает, в каком формате необходимо получить данные. Если ключевое слово не указано, данные получаются в формате atom-xml.
* $format=atom – возвращает данные в формате atom-xml.
* $format=json – возвращает данные в формате json. Для указания того, что данные должны возвращаться в формате json, можно указать MIME-тип application/json в заголовке Accept HTTP-запроса на получение данных.
* $metadata – указывает, что требуется получить описание стандартного интерфейса OData.
* $filter – описывает отбор, применяемый при получении данных.
* $select – описывает перечень свойств сущности, которые получаются при обращении к стандартному интерфейсу OData.

После того, как сформирован URL необходимого ресурса, следует выполнить HTTP-запрос нужного вида. В зависимости от того, какая операция выполняется, используется соответствующий HTTP-метод:
* Получение данных – метод GET;
* Создание объекта – метод POST;

В результате выполнения запроса клиентское приложение получает ответ сервера, который кроме кода состояния может содержать различные данные, предоставленные сервером, в виде XML-документа.
В примерах URL, которые используются в данном разделе, выражение guid'value' означает выражение OData, которое описывает конкретное значение GUID (тип Edm.Guid).