Общедоступный REST API конвейера данных Microsoft Fabric (предварительная версия)

Внимание

API Microsoft Fabric для фабрики данных create/Read/Update/Delete (CRUD) в настоящее время находится в предварительной версии. Эта информация относится к предварительному продукту, который может быть существенно изменен до выпуска. Корпорация Майкрософт не дает явных или подразумеваемых гарантий относительно предоставленных здесь сведений.

В Microsoft Fabric API фабрики данных состоят исключительно из операций CRUD для конвейеров и потоков данных. В настоящее время поддерживаются только конвейеры данных. API потоков данных будут выпущены позже. Другие распространенные области для проектов интеграции данных находятся в отдельных API: расписания, мониторинг, подключения, имеют собственные API в Fabric. Основная справочная документация по REST API Microsoft Fabric см. в справочниках по REST API Microsoft Fabric. Также обратитесь к API основных элементов и планировщику заданий.

Получение маркера авторизации

Вариант 1. Использование MSAL.Net

Краткое руководство по API Fabric — REST API Microsoft Fabric

Используйте MSAL.Net для получения маркера идентификатора Microsoft Entra для службы Fabric со следующими область: Workspace.ReadWrite.All, Item.ReadWrite.All. Дополнительные сведения о приобретении токенов с MSAL.Net см. в статье "Приобретение маркеров" — библиотека проверки подлинности Майкрософт для .NET.

Вставьте идентификатор приложения (клиента), скопированный ранее, и вставьте его для переменной ClientId.

Вариант 2. Использование портала Fabric

Войдите на портал Fabric для клиента, на который вы хотите протестировать, и нажмите клавишу F12, чтобы войти в режим разработчика браузера. В консоли выполните следующие действия:

powerBIAccessToken

Скопируйте маркер и вставьте его для переменной ClientId.

Определение элемента с закодированными полезными данными base64

  • Для кодирования JSON используйте кодировку Base64 и декодирование .
  • Убедитесь, что поле безопасного кодирования URL-адреса не проверка.
  • Определения конвейера можно получить с помощью вкладки "Вид кода JSON-> Просмотр кода JSON" в пользовательском интерфейсе Fabric.
{ 
    "name": "Pipeline_1_updated", 
    "objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "properties": { 
        "description": "this is the description", 
        "activities": [ 
            { 
                "name": "Wait1", 
                "type": "Wait", 
                "dependsOn": [], 
                "typeProperties": { 
                    "waitTimeInSeconds": 240 
                } 
            } 
        ], 
        "annotations": [], 
        "lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
        "lastPublishTime": "2024-02-01T17:28:02Z" 
    } 
}

Возьмите объект свойств и окружите их в фигурных скобках { } - поэтому полезные данные определения элемента REST будут:

{
    "properties": { 
        "description": "this is the description", 
        "activities": [ 
            { 
                "name": "Wait1", 
                "type": "Wait", 
                "dependsOn": [], 
                "typeProperties": { 
                    "waitTimeInSeconds": 240 
                } 
            } 
        ], 
        "annotations": [], 
        "lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
        "lastPublishTime": "2024-02-01T17:28:02Z" 
    } 
} 

Создать элемент

REST API — элементы — создание элемента

Пример:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Текст:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline" 
} 

Примечание.

В документации указано, что есть только 2 обязательных свойства — displayName и type. В настоящее время рабочая нагрузка-DI не поддерживает создание без определения . Исправление для этого ошибочного требования в настоящее время развертывается. Теперь можно отправить то же определение по умолчанию, используемое пользовательским интерфейсом Fabric: ‘{"properties":{"activities":[]}}’

Изменен JSON, включая определение:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline", 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
} 

Ответ 201:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "description": "", 
    "workspaceId": "<Your WS Id>" 
} 

Удаление элемента

REST API — элементы — удаление элемента

Пример:

DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Ответ 200: (без текста)

Get item (Получение элемента)

REST API — элементы — получение элемента

Пример:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Ответ 200:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "workspaceId": "<your WS Id>" 
} 

Получение определения элемента

REST API — элементы — получение определения элемента

Пример:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition

Ответ 200:

{ 
    "definition": { 
        "parts":[ 
            { 
                "path": "pipeline-content.json", 
                "payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==", 
                "payloadType": "InlineBase64" 
            } 
        ] 
    } 
} 

Элементы списка

REST API — элементы списка

Пример:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Ответ 200:

{ 
    "value": [ 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "SemanticModel", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "SQLEndpoint", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "Lakehouse", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "DataPipeline", 
            "displayName": "Pipeline_1", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        } 
    ] 
} 

Обновление элемента

REST API — элементы — обновление элемента

Пример:

PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Текст:

{ 
  "displayName": "Pipeline_1_updated", 
  "description": "This is the description." 
}

Ответ 200:

{ 
    "id": "<pipeline id>", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1_updated", 
    "description": "This is the description.", 
    "workspaceId": "<Your WS id>" 
}

Обновление определения элемента

REST API — элементы — обновление определения элементов

Пример:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition

Текст:

{ 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}

Ответ 200: (без текста)

Выполнение задания элемента по запросу

REST API — элементы — выполнение задания элемента по запросу

Пример:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

Ответ 202: (без текста)

Пример с двумя значениями параметров:

Здесь у нас есть действие Wait с параметром с именем param_waitsec, чтобы указать количество секунд для ожидания.

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

Текст:

{ 
  "executionData": { 
    "parameters": {
      "param_waitsec": 10" 
    } 
  } 
}

Ответ 202: (без текста)

Примечание.

В настоящее время нет возвращаемого текста, но идентификатор задания должен быть возвращен. Во время предварительной версии его можно найти в возвращаемых заголовках в свойстве Location.

Получение экземпляра задания элемента

REST API — элементы — получение экземпляра задания элемента

Пример:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>dotnetcli

Ответ 200:

{ 
    "id": "4511ffcd-a9f6-4f75-91a9-9ceab08d7539", 
    "itemId": "2bb9fe4a-0a84-4725-a01f-7ac4e6850259", 
    "jobType": "Pipeline", 
    "invokeType": "Manual", 
    "status": "Completed", 
    "failureReason": null, 
    "rootActivityId": "f14bdd95-2cff-4451-b839-bea81509126d", 
    "startTimeUtc": "2024-02-01T03:03:19.8361605", 
    "endTimeUtc": "2024-02-01T03:05:00.3433333" 
} 

Отмена экземпляра задания элемента

REST API — элементы — экземпляр задания отмены

Пример:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel

Ответ 202: (без текста)

Примечание.

После отмены задания можно проверка состояние, вызвав экземпляр задания get item или просмотр журнала выполнения представления в пользовательском интерфейсе Fabric.

Известные ограничения

  • Проверка подлинности субъекта-службы (SPN) не поддерживается

Следующие шаги