Delen via


Fabric-API voor GraphQL-editor

De Fabric-API voor GraphQL biedt een grafische in-browser GraphQL-ontwikkelomgeving, waarmee een interactieve speeltuin de live resultaten van uw GraphQL-query's en mutaties kan opstellen, testen en bekijken.

Wie gebruikt de GraphQL-editor

De GraphQL-editor is essentieel voor:

  • Toepassingsontwikkelaars maken van prototypen en testen van query's op Fabric-gegevens voordat ze in toepassingen worden geïmplementeerd
  • Data engineers verkennen lakehouse- en datawarehouse-structuren en valideren GraphQL-schemaontwerpen
  • Fabric werkruimtebijdragers die machtigingen voor gegevenstoegang testen en queryproblemen oplossen
  • BI-ontwikkelaars leren de API-structuur en maken patronen voor gegevenstoegang voor aangepaste toepassingen
  • Ontwikkelteams die samenwerken aan het ontwikkelen van query's en het oplossen van problemen met gegevenstoegang in Fabric-werkruimten

Gebruik de editor wanneer u graphQL-query's interactief wilt ontwikkelen, testen of fouten wilt opsporen in uw Fabric-gegevensbronnen.

Aan de slag met de GraphQL-editor

Volg deze stappen om de GraphQL-editor te gaan gebruiken:

  1. Open het GraphQL API-item : navigeer naar uw werkruimte in Fabric en open het API voor GraphQL-item.

  2. Open de editor - Selecteer Query in de linkerbenedenhoek van het portalscherm.

    Schermopname waarin de optie Query wordt weergegeven in de linkerbenedenhoek van het scherm Fabric.

  3. Schrijf uw query - Typ uw GraphQL-query's rechtstreeks op het tabblad Query . Gebruik Intellisense met sneltoetsen:

    • Windows: Ctrl+ spatiebalk
    • macOS: Command + Spatie

    Schermopname van het scherm API-editor, waarin een tabblad Query wordt weergegeven, onderverdeeld in het deelvenster Uitvoeren, Queryvariabelen en Resultaten.

  4. Voer de query uit : selecteer Uitvoeren om de query uit te voeren en gegevens op te halen uit uw gegevensbron.

Code genereren

De API-editor genereert automatisch standaard Python of Node.js code die de GraphQL-query of mutatie weerspiegelt die u momenteel in de editor test. Wanneer u een prototype hebt gemaakt en uw query's verfijnt, wordt de gegenereerde code dienovereenkomstig bijgewerkt. Zodra u tevreden bent met de resultaten, kunt u de gegenereerde code bekijken en kopiëren om lokaal te worden uitgevoerd voor testdoeleinden of om deze opnieuw te gebruiken in het ontwikkelproces van uw toepassing.

Important

De gegenereerde code maakt gebruik van interactieve browserreferenties en mag alleen worden gebruikt voor testdoeleinden. Registreer in productie altijd een toepassing in Microsoft Entra en gebruik de juiste client_id bereiken. U vindt een end-to-end-voorbeeld met voorbeeldcode in Connect Applications.

Aan de slag:

  1. Een query schrijven : voer de volgende voorbeeldquery (of uw eigen query) in de Query-editor in:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Voer de query uit : selecteer Uitvoeren om de query uit te voeren en controleer of deze correct werkt in de editor voordat u doorgaat.

  3. Code genereren : selecteer de knop Code genereren en selecteer vervolgens de gewenste programmeertaal (Python of JavaScript/Node.JS):

    Schermopname van het api-editorscherm met de vervolgkeuzelijst om de programmeertaal voor gegenereerde code te selecteren.

  4. Vervolgens kunt u de gegenereerde code kopiëren en opslaan als een bestand in een lokale map. Afhankelijk van de gekozen taal volgt u deze snelle stappen om lokaal te testen:

Python

  1. Maak een bestand met de naam editor.py en plak de gegenereerde code uit de bovenstaande voorbeeldquery.

  2. Maak een virtuele omgeving door de opdracht python -m venv .venvuit te voeren.

  3. Activeer de venv door uit te voeren .venv\Scripts\activate of source .venv/bin/activate.

  4. Installeer de vereiste afhankelijkheid door uit te voeren pip install azure-identity.

  5. Voer de code uit met python editor.py.

  6. U wordt gevraagd u aan te melden via een browservenster om de aanvraag te verifiëren.

  7. Het antwoord van de API wordt afgedrukt in de console.

    {
    	"data": {
    		"addresses": {
    			"items": [
    				{
    					"AddressID": 9,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 11,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 25,
    					"City": "Dallas",
    					"StateProvince": "Texas",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 28,
    					"City": "Phoenix",
    					"StateProvince": "Arizona",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 32,
    					"City": "Montreal",
    					"StateProvince": "Quebec",
    					"CountryRegion": "Canada"
    				}
    			]
    		}
    	}
    }
    

Node.JS

  1. Maak een bestand met de naam editor.js en plak de gegenereerde code uit de bovenstaande voorbeeldquery.

  2. Maak in dezelfde map als editor.jseen package.json bestand met de volgende inhoud:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Installeer Node.js op uw ontwikkelcomputer (inclusief npm)

  4. Voer npm install @azure/identity of een vergelijkbare opdracht uit in uw gekozen pakketbeheer om de nieuwste versie van de identiteitsbibliotheek te installeren.

  5. Voer node editor.js uit.

  6. U wordt gevraagd u aan te melden via een browservenster om de aanvraag te verifiëren.

  7. Het antwoord van de API wordt afgedrukt in de console.

    {
    	"data": {
    		"addresses": {
    			"items": [
    				{
    					"AddressID": 9,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 11,
    					"City": "Bothell",
    					"StateProvince": "Washington",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 25,
    					"City": "Dallas",
    					"StateProvince": "Texas",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 28,
    					"City": "Phoenix",
    					"StateProvince": "Arizona",
    					"CountryRegion": "United States"
    				},
    				{
    					"AddressID": 32,
    					"City": "Montreal",
    					"StateProvince": "Quebec",
    					"CountryRegion": "Canada"
    				}
    			]
    		}
    	}
    }
    

Ontwikkeling van query's en mutaties

In de volgende voorbeelden ziet u de syntaxis van GraphQL-query's en mutaties met behulp van de AdventureWorks-voorbeeldgegevens. In deze voorbeelden wordt ervan uitgegaan dat u werkt met een Fabric Data Warehouse dat schrijfbewerkingen (mutaties) ondersteunt. Gegevensbronnen die toegankelijk zijn via SQL Analytics-eindpunten (zoals Lakehouses en gespiegelde databases) zijn alleen leestoegang en ondersteunen alleen query's, niet mutaties.

Bekijk dit korte GraphQL-schemafragment uit AdventureWorks. Het definieert een Product type met query's om één product te lezen of alle producten te vermelden, en mutaties om producten te maken, bij te werken of te verwijderen, waarbij alle CRUDL-toepassingen (maken, lezen, bijwerken, verwijderen, lijst) worden ondersteund.

{
  type Product {
    ProductID: Int!
    Name: String!
    ProductNumber: String!
    Color: String
    ListPrice: Float!
    SellStartDate: DateTime!
  }

  type Query {
    products(first: Int, filter: ProductFilterInput): ProductConnection
    products_by_pk(ProductID: Int!): Product
  }

  type Mutation {
    createProduct(Name: String!, ProductNumber: String!, ListPrice: Float!, SellStartDate: DateTime!): Product
    updateProduct(ProductID: Int!, Name: String, Color: String, ListPrice: Float): Product
    deleteProduct(ProductID: Int!): Boolean
  }
}

Lees de gegevens die via GraphQL worden weergegeven met behulp van een query die in het schema is gedefinieerd. Met de products_by_pk query wordt één product opgehaald op basis van de primaire sleutel:

query MyQuery {
  products_by_pk(ProductID: 680) {
    ProductID
    Name
    ProductNumber
    Color
    ListPrice
  }
}

Response:

{
  "data": {
    "products_by_pk": {
      "ProductID": 680,
      "Name": "HL Road Frame - Black, 58",
      "ProductNumber": "FR-R92B-58",
      "Color": "Black",
      "ListPrice": 1431.50
    }
  }
}

Gebruik mutaties zoals createProduct om gegevens te schrijven en een nieuw product te creëren met de vereiste parameters.

mutation MyMutation {
  createProduct(
    Name: "Mountain Bike Helmet - Blue", 
    ProductNumber: "HE-M897-B", 
    ListPrice: 89.99,
    SellStartDate: "2025-01-01T00:00:00Z"
  ) {
    ProductID
    Name
    ProductNumber
    ListPrice
  }
}

Response:

{
  "data": {
    "createProduct": {
      "ProductID": 1001,
      "Name": "Mountain Bike Helmet - Blue",
      "ProductNumber": "HE-M897-B",
      "ListPrice": 89.99
    }
  }
}

Queryvariabelen

Gebruik het deelvenster Queryvariabelen aan de rechterkant van het tabblad Query om parameters als variabelen door te geven aan uw query's of mutaties. Variabelen werken als variabelen in andere programmeertalen. Elke variabele wordt gedeclareerd met een naam die wordt gebruikt voor toegang tot de waarde die erin is opgeslagen. Met behulp van het vorige mutatievoorbeeld wijzigt u het enigszins om queryvariabelen te gebruiken.

mutation MyMutation ($name: String!, $productNumber: String!, $listPrice: Float!, $sellStartDate: DateTime!){
  createProduct(
    Name: $name, 
    ProductNumber: $productNumber, 
    ListPrice: $listPrice,
    SellStartDate: $sellStartDate
  ) {
    ProductID
    Name
    ProductNumber
    ListPrice
  }
}

Definieer variabelen in het deelvenster Queryvariabelen met behulp van het volgende voorbeeld.

{
  "name": "Mountain Bike Helmet - Blue",
  "productNumber": "HE-M897-B",
  "listPrice": 89.99,
  "sellStartDate": "2025-01-01T00:00:00Z"
}

Variabelen maken de mutatiecode schoner, gemakkelijker te lezen, te testen en te wijzigen. Ze maken het ook eenvoudig om dezelfde mutatie met verschillende waarden opnieuw te gebruiken door alleen de variabelen te wijzigen.