Добрый день!
Планирую интеграцию одного приложения с Creatio CRM через внешний API на OData4.
Читаю документацию, и вижу, что любую сущность можно получить через отдельный запрос. Но изначально система не знает какие сущности могут быть в системе, и чтобы получить их список нужно выполнить SQL-запрос (по инстркуции):
для MySQL
SELECT * FROM INFORMATION_SCHEMA.TABLES
для Oracle
SELECT * FROM ALL_TABLES
для PostgreSQL
SELECT table_name FROM information_schema.tables
У меня есть только данные для авторизации юзера через OData4, и этот запрос мне никак не выполнить.
Есть ли какой-то способ через внешний API получить список всех таблиц?
Нравится
Павел, можно ещё
https://{server}/0/odata/
Так будет результат в JSON.
Либо воспользоваться информацией из таблицы SysSchema, которая тоже доступна по OData. За объекты отвечает EntitySchemaManager, получить список можно с таким фильтром:
https://{server}/0/odata/SysSchema?$filter=ManagerName%20eq%20%27EntitySchemaManager%27
А вариант с выбором из базы не очень подходит, поскольку зависит от платформы, плюс не все таблицы в базе связаны с объектами конфигурации и могут быть доступны по OData. И наоборот, часть объектов сделаны не на основе table, а по view.
Нашел сам
Запрос на
https://{server}/0/odata/$metadata
возвращает внутри <Schema Namespace="Terrasoft.Configuration.OData" xmlns="http://docs.oasis-open.org/odata/ns/edm"> все сущности
Павел, можно ещё
https://{server}/0/odata/
Так будет результат в JSON.
Либо воспользоваться информацией из таблицы SysSchema, которая тоже доступна по OData. За объекты отвечает EntitySchemaManager, получить список можно с таким фильтром:
https://{server}/0/odata/SysSchema?$filter=ManagerName%20eq%20%27EntitySchemaManager%27
А вариант с выбором из базы не очень подходит, поскольку зависит от платформы, плюс не все таблицы в базе связаны с объектами конфигурации и могут быть доступны по OData. И наоборот, часть объектов сделаны не на основе table, а по view.
Зверев Александр, Спасибо! А метадату конкретной сущности как получить?
Требуется узнать какие поля у модели.
Pavel Buev,
Добрый день Павел, нашли решение получение метадаты конктретной сущности? ищу рещение такой же проблемы