Sdílet prostřednictvím


Veřejné rozhraní REST API datového kanálu Microsoft Fabric (Preview)

Důležité

Rozhraní API Microsoft Fabric pro službu Data Factory je aktuálně ve verzi Public Preview. Tyto informace se týkají předběžné verze produktu, který může být podstatně změněn před vydáním. Společnost Microsoft neposkytuje žádné záruky, vyjádřené ani předpokládané, pokud jde o informace uvedené zde.

V Microsoft Fabric se rozhraní API služby Data Factory skládají výhradně z operací CRUD pro kanály a toky dat. V současné době se podporují jenom datové kanály. Rozhraní API toků dat budou vydána později. Další běžné oblasti pro projekty integrace dat jsou v samostatných rozhraních API: plány, monitorování, připojení a vlastní rozhraní API v prostředcích infrastruktury. Primární online referenční dokumentace k rozhraním REST API Microsoft Fabric najdete v referenčních materiálech k rozhraní REST API Microsoft Fabric. Projděte si také rozhraní API základních položek a plánovač úloh.

Připojení veřejných rozhraní API

Nyní jsou k dispozici veřejná rozhraní API pro připojení. Tato rozhraní API umožňují bezproblémovou integraci a přístup k různým veřejným zdrojům dat v rámci datových kanálů.

Získání autorizačního tokenu

Možnost 1: Použití MSAL.Net

Rychlý start k rozhraní FABRIC API – Rozhraní REST API Microsoft Fabric

Pomocí MSAL.Net získejte token ID Microsoft Entra pro službu Fabric s následujícími obory: Workspace.ReadWrite.All, Item.ReadWrite.All. Další informace o získávání tokenů pomocí MSAL.Net naleznete v tématu Získání tokenu – Microsoft Authentication Library pro .NET.

Vložte ID aplikace (klienta), které jste zkopírovali dříve, a vložte ho pro proměnnou ClientId.

Možnost 2: Použití portálu Fabric

Přihlaste se k portálu Fabric pro tenanta, kterého chcete otestovat, a stisknutím klávesy F12 přejděte do vývojářského režimu prohlížeče. V konzole spusťte:

powerBIAccessToken

Zkopírujte token a vložte ho pro proměnnou ClientId.

Definice položky s kódováním base64 datové části

  • K kódování JSON použijte kódování a dekódování Base64.
  • Ujistěte se, že není zaškrtnuté políčko Provést bezpečné kódování adresy URL.
  • Definice kanálu můžete získat prostřednictvím karty Zobrazit -->View JSON v uživatelském rozhraní 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" 
    } 
}

Vezměte objekt vlastností a obklopte je do složených závorek – { } – proto by datová část definice položky REST byla:

{
    "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" 
    } 
} 

Vytvořit položku

REST API – Položky – Vytvoření položky

Příklad 1 – CreateDataPipeline:

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

Text:

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

Poznámka:

Dokumentace uvádí, že existují pouze 2 požadované vlastnosti – displayName a typ. V současné době úloha-DI nepodporuje vytváření bez definice . Oprava tohoto chybného požadavku se právě nasazuje. Prozatím můžete odeslat stejnou výchozí definici, kterou používá uživatelské rozhraní Fabric: ‘{"properties":{"activities":[]}}’

Upravený JSON včetně definice:

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

Odpověď 201:

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

Příklad 2 – Vytvoření mountedDataFactory

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

Text:

Datová část:

{"DataFactoryResourceId":"/subscriptions/<ADF subscription Id>/resourceGroups/<ADF resource group name>/providers/Microsoft.DataFactory/factories/<ADF datafactory name>"} 

Kódovaný KÓD JSON:

{ 
  "displayName": "pipeline_mdf", 
  "type": " MountedDataFactory ", 
  "definition": { 
    "parts": [ 
      { 
        "path": "mountedDataFactory-content.json", 
        "payload": <base64 encoded value>, 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}  

Odpověď 201:

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

Odstranit položku

REST API – Položky – Odstranění položky

Příklad:

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

Odpověď 200: (Bez textu)

Získat položku

REST API – Položky – Získání položky

Příklad:

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

Odpověď 200:

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

Získání definice položky

REST API – Položky – Získání definice položky

Příklad:

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

Odpověď 200:

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

Položky seznamu

REST API – Položky – Položky seznamu

Příklad:

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

Odpověď 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" 
        } 
    ] 
} 

Aktualizovat položku

REST API – Položky – Aktualizace položky

Příklad:

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

Text:

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

Odpověď 200:

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

Aktualizace definice položky

REST API – Položky – Aktualizace definice položky

Příklad:

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

Text:

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

Odpověď 200: (Bez textu)

Spuštění úlohy položky na vyžádání

REST API – Položky – Spuštění úlohy položek na vyžádání

Příklad:

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

Odpověď 202: (Bez textu)

Příklad se dvěma hodnotami parametrů:

Tady máme aktivitu Wait s parametrem s názvem param_waitsec , který určuje počet sekund čekání.

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

Text:

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

Odpověď 202: (Bez textu)

Poznámka:

V současné době není vráceno žádné tělo, ale mělo by se vrátit ID úlohy. Během náhledu ji najdete ve vrácené hlavičce ve vlastnosti Umístění.

Získání instance úlohy položky

REST API – Položky – Získání instance úlohy položky

Příklad:

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

Odpověď 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" 
} 

Zrušení instance úlohy položky

REST API – Položky – Zrušení instance úlohy položky

Příklad:

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

Odpověď 202: (Bez textu)

Poznámka:

Po zrušení úlohy můžete stav zkontrolovat voláním instance úlohy Získat položku nebo zobrazením historie spuštění v uživatelském rozhraní Fabric.

Spouštění aktivit dotazů

Příklad:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns

Text:

{
  "filters":[],
  "orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
  "lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
  "lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}

Poznámka:

ID úlohy je stejné ID, které se vytvořilo a používá ve veřejných rozhraních API plánovače úloh.

Odpověď 200:

[
    {
        "pipelineName": "ca91f97e-5bdd-4fe1-b39a-1f134f26a701",
        "pipelineRunId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "activityName": "Wait1",
        "activityType": "Wait",
        "activityRunId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
        "linkedServiceName": "",
        "status": "Succeeded",
        "activityRunStart": "2024-05-23T13:43:03.6397566Z",
        "activityRunEnd": "2024-05-23T13:43:31.3906179Z",
        "durationInMs": 27750,
        "input": {
            "waitTimeInSeconds": 27
        },
        "output": {},
        "error": {
            "errorCode": "",
            "message": "",
            "failureType": "",
            "target": "Wait1",
            "details": ""
        },
        "retryAttempt": null,
        "iterationHash": "",
        "userProperties": {},
        "recoveryStatus": "None",
        "integrationRuntimeNames": null,
        "executionDetails": null,
        "id": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/pipelineruns/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/activityruns/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a"
    }
]

Známá omezení

  • Ověřování instančního objektu (SPN) se v současné době nepodporuje.