Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Для работы со статикой существует 2 типа API:

  • Простой CRUD - ;

  • Orchestrated API.

  1. Простой CRUD позволяет выполнять простые операции с примитивными объектами базы данных (например, "Контакт", "Документ", "Код").

    На каждый тип объектов в общем случае распространяется три типа операций:

...

    1. получить список объектов в рамках области видимости;

...

    1. сохранить/удалить или отредактировать объект;

...

    1. операция выгрузки объекта по первичному ключу (например, для контактов: получить список контактов по идентификатору персоны (List), получить конкретный контакт по его идентификатору (Get), изменить или создать новый контакт (Save)).

    При этом внутри объекта нет никаких связей с другими сущностями - например, в "Персоне" нет документов и ссылок на коды.

    Данный API следует использовать в том случае, если требуется проводить низкоуровневые операции с объектами, так как API позволяет контролировать, в том числе, и сложные связи, как, например, зависимость кодов от типов услуг или других кодов.

    При использовании данного механизма все бизнес-объекты представлены в виде плоских структур с полями примитивных типов (строка, число, дата и т. д.).

  1. Orchestrated API - удобное API с инкапсулированной бизнес-логикой, предназначенное для выполнения высокоуровневых операций. Также ряд методов этого API позволяет работать с объектами старой и новой версии одновременно.
    При использовании данного механизма все бизнес-объекты представлены в виде иерархических структур со всеми зависимостями.

Note

...

Вопрос производительности запросов - ключевой при выборе типа API для вашего приложения.

Например, в Orchestrated API, чтобы поменять один контакт, надо выгрузить всю персону, поменять контакт и все загрузить заново обратно в систему, что приведет к выполнению целой серии запросов к БД, а в CRUD, чтобы поменять контакт, нужно просто передать всю его информацию. Также CRUD позволяет проводить атомарные операции - например, получить все контакты, привязанные к персоне с определенным id_Person.

...