Udostępnij za pośrednictwem


Publiczny interfejs API REST potoku danych usługi Microsoft Fabric (wersja zapoznawcza)

Ważne

Interfejs API usługi Microsoft Fabric dla usługi Data Factory jest obecnie w publicznej wersji zapoznawczej. Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed jego wydaniem. Firma Microsoft nie udziela żadnych gwarancji, wyrażonych ani domniemanych, w odniesieniu do podanych tutaj informacji.

W usłudze Microsoft Fabric interfejsy API usługi Data Factory składają się wyłącznie z operacji CRUD dla potoków i przepływów danych. Obecnie obsługiwane są tylko potoki danych. Interfejsy API przepływów danych zostaną wydane później. Inne typowe obszary projektów integracji danych znajdują się w oddzielnych interfejsach API: harmonogramy, monitorowanie, połączenia, mają własne interfejsy API w usłudze Fabric. Podstawowa dokumentacja referencyjna online dla interfejsów API REST usługi Microsoft Fabric znajduje się w dokumentacji interfejsu API REST usługi Microsoft Fabric. Zapoznaj się również z podstawowymi elementami interfejsu API i harmonogramem zadań.

Uzyskiwanie tokenu autoryzacji

Opcja 1. Używanie MSAL.Net

Przewodnik Szybki start dotyczący interfejsu API sieci szkieletowej — interfejsy API REST usługi Microsoft Fabric

Użyj MSAL.Net, aby uzyskać token identyfikatora entra firmy Microsoft dla usługi Fabric z następującymi zakresami: Workspace.ReadWrite.All, Item.ReadWrite.All. Aby uzyskać więcej informacji na temat pozyskiwania tokenów za pomocą MSAL.Net, zobacz Token Acquisition — Microsoft Authentication Library for .NET (Pozyskiwanie tokenów — biblioteka uwierzytelniania firmy Microsoft dla platformy .NET).

Wklej skopiowany wcześniej identyfikator aplikacji (klienta) i wklej go jako zmienną ClientId.

Opcja 2. Korzystanie z portalu sieci szkieletowej

Zaloguj się do portalu sieci szkieletowej dla dzierżawy, na której chcesz przeprowadzić testowanie, i naciśnij F12, aby wprowadzić tryb dewelopera przeglądarki. W konsoli programu uruchom następujące polecenie:

powerBIAccessToken

Skopiuj token i wklej go dla zmiennej ClientId.

Definicja elementu z ładunkiem zakodowanym w formacie base64

  • Kodowanie i dekodowanie kodu w formacie JSON przy użyciu algorytmu Base64.
  • Upewnij się, że pole Wykonaj bezpieczne kodowanie adresu URL nie jest zaznaczone.
  • Definicje potoków można pobrać za pomocą karty Widok —> Wyświetl kod JSON w interfejsie użytkownika sieci szkieletowej.
{ 
    "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" 
    } 
}

Weź obiekt properties i umieść je w nawiasach klamrowych — { } — więc ładunek definicji elementu REST będzie:

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

Utwórz element

Interfejs API REST — elementy — tworzenie elementu

Przykład:

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

Treść:

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

Uwaga

W dokumentacji stwierdza się, że istnieją tylko 2 wymagane właściwości — displayName i typ. Obecnie usługa Workload-DI nie obsługuje tworzenia bez definicji . Poprawka tego błędnego wymagania jest obecnie wdrażana. Na razie możesz wysłać tę samą definicję domyślną używaną przez interfejs użytkownika sieci szkieletowej: ‘{"properties":{"activities":[]}}’

Zmodyfikowany kod JSON, w tym definicja:

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

Odpowiedź 201:

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

Usuwanie elementu

Interfejs API REST — elementy — usuwanie elementu

Przykład:

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

Odpowiedź 200: (Brak treści)

Pobieranie elementu

Interfejs API REST — Elementy — Pobieranie elementu

Przykład:

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

Odpowiedź 200:

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

Pobieranie definicji elementu

Interfejs API REST — Elementy — pobieranie definicji elementu

Przykład:

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

Odpowiedź 200:

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

Elementy listy

Interfejs API REST — elementy — elementy listy

Przykład:

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

Odpowiedź 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" 
        } 
    ] 
} 

Aktualizuj element

Interfejs API REST — elementy — aktualizowanie elementu

Przykład:

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

Treść:

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

Odpowiedź 200:

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

Aktualizowanie definicji elementu

Interfejs API REST — Elementy — aktualizowanie definicji elementu

Przykład:

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

Treść:

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

Odpowiedź 200: (Brak treści)

Uruchamianie zadania elementu na żądanie

Interfejs API REST — elementy — uruchamianie zadania elementu na żądanie

Przykład:

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

Odpowiedź 202: (Brak treści)

Przykład z dwiema wartościami parametrów:

W tym miejscu mamy działanie Wait z parametrem o nazwie param_waitsec , aby określić liczbę sekund oczekiwania.

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

Treść:

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

Odpowiedź 202: (Brak treści)

Uwaga

Obecnie nie jest zwracana żadna treść, ale identyfikator zadania powinien zostać zwrócony. W wersji zapoznawczej można ją znaleźć w zwróconych nagłówkach we właściwości "Location".

Pobieranie wystąpienia zadania elementu

Interfejs API REST — elementy — pobieranie wystąpienia zadania elementu

Przykład:

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

Odpowiedź 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" 
} 

Anulowanie wystąpienia zadania elementu

Interfejs API REST — Elementy — anulowanie wystąpienia zadania elementu

Przykład:

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

Odpowiedź 202: (Brak treści)

Uwaga

Po anulowaniu zadania możesz sprawdzić stan, wywołując polecenie Pobierz wystąpienie zadania elementu lub przeglądając historię uruchamiania widoku w interfejsie użytkownika sieci szkieletowej.

Uruchomienia działań zapytań

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

Treść:

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

Uwaga

"Identyfikator zadania" jest tym samym identyfikatorem utworzonym i używanym w publicznych interfejsach API harmonogramu zadań

Odpowiedź 200:

[
    {
        "pipelineName": "ca91f97e-5bdd-4fe1-b39a-1f134f26a701",
        "pipelineRunId": "f2fa7a0e-586d-4d73-a2b4-7ddc785243ae",
        "activityName": "Wait1",
        "activityType": "Wait",
        "activityRunId": "ef579d3d-d23e-477a-8150-d6e15d66a532",
        "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/4DA86268-68B8-4B08-AD58-A7AEE54138CD/RESOURCEGROUPS/4DA86268-68B8-4B08-AD58-A7AEE54138CD/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/4DA86268-68B8-4B08-AD58-A7AEE54138CD/pipelineruns/f2fa7a0e-586d-4d73-a2b4-7ddc785243ae/activityruns/ef579d3d-d23e-477a-8150-d6e15d66a532"
    }
]

Znane ograniczenia

  • Uwierzytelnianie jednostki usługi (SPN) nie jest obsługiwane