Работа со статикой (персоны, документы, коды, контакты и т. д.)
Статикой считаются такие виды объектов, как, например, персона, документ, код, контакт и так далее.
Кроме того, некоторые объекты связаны друг с другом при помощи отношения "многие-ко-многим", в этом случае при помощи API можно работать не только с самими объектами, но и с их связями (так называемые Relations).
Для работы со статикой существует 2 типа API:
Простой CRUD;
Orchestrated API.
Простой CRUD позволяет выполнять простые операции с примитивными объектами базы данных (например, "Контакт", "Документ", "Код").
На каждый тип объектов в общем случае распространяется три типа операций:
получить список объектов в рамках области видимости;
сохранить/удалить или отредактировать объект;
операция выгрузки объекта по первичному ключу (например, для контактов: получить список контактов по идентификатору персоны (List), получить конкретный контакт по его идентификатору (Get), изменить или создать новый контакт (Save)).
При этом внутри объекта нет никаких связей с другими сущностями - например, в "Персоне" нет документов и ссылок на коды.
Данный API следует использовать в том случае, если требуется проводить низкоуровневые операции с объектами, так как API позволяет контролировать, в том числе, и сложные связи, как, например, зависимость кодов от типов услуг или других кодов.
При использовании данного механизма все бизнес-объекты представлены в виде плоских структур с полями примитивных типов (строка, число, дата и т. д.).
Orchestrated API - удобное API с инкапсулированной бизнес-логикой, предназначенное для выполнения высокоуровневых операций. Также ряд методов этого API позволяет работать с объектами старой и новой версии одновременно.
При использовании данного механизма все бизнес-объекты представлены в виде иерархических структур со всеми зависимостями.
Вопрос производительности запросов - ключевой при выборе типа API для вашего приложения.
Например, в Orchestrated API, чтобы поменять один контакт, надо выгрузить всю персону, поменять контакт и все загрузить заново обратно в систему, что приведет к выполнению целой серии запросов к БД, а в CRUD, чтобы поменять контакт, нужно просто передать всю его информацию. Также CRUD позволяет проводить атомарные операции - например, получить все контакты, привязанные к персоне с определенным id_Person.
____