Megosztás:


Fabric API a GraphQL-szerkesztőhöz

A GraphQL-hez készült Fabric API grafikus, böngészőn belüli GraphQL-fejlesztési környezetet biztosít, amely lehetővé teszi, hogy egy interaktív játszótér a GraphQL-lekérdezések és -mutációk élő eredményeit írja, tesztelje és tekintse meg.

Ki használja a GraphQL-szerkesztőt?

A GraphQL-szerkesztő nélkülözhetetlen a következő célokhoz:

  • Az alkalmazásfejlesztők lekérdezéseket fejlesztenek ki és tesztelnek a Fabric-adatokon, mielőtt implementálják őket az alkalmazásokban
  • Adatmérnökök a Lakehouse és a Warehouse adatstruktúráinak feltárásával és a GraphQL-sématervek érvényesítésével
  • Fabric munkaterület közreműködői adathozzáférési engedélyek tesztelése és lekérdezési hibák elhárítása
  • A BI-fejlesztők megismerik az API-struktúrát, és adathozzáférési mintákat hoznak létre egyéni alkalmazásokhoz
  • A Fabric-munkaterületeken a lekérdezésfejlesztéssel és az adathozzáférési problémák elhárításával együttműködő fejlesztői csapatok

Használja a szerkesztőt, amikor a GraphQL-lekérdezések interaktív fejlesztésére, tesztelésére vagy hibakeresésére van szüksége a Fabric-adatforrások alapján.

A GraphQL-szerkesztő használatának első lépései

A GraphQL-szerkesztő használatának megkezdéséhez kövesse az alábbi lépéseket:

  1. Nyissa meg a GraphQL API-elemet – Lépjen a munkaterületre a Fabricben, és nyissa meg a GraphQL-hez készült API-t.

  2. Hozzáférés a szerkesztőhözA lekérdezés kiválasztása a portál képernyőjének bal alsó sarkában.

    Képernyőkép arról, hogy hol jelenik meg a Lekérdezés lehetőség a Háló képernyő bal alsó sarkában.

  3. Írja meg a lekérdezést – Írja be a GraphQL-lekérdezéseket közvetlenül a Lekérdezés lapra. Használja az Intellisense billentyűparancsait:

    • Windows: CTRL + Szóköz
    • macOS: Command + Space

    Képernyőkép az API-szerkesztő képernyőjéről, amelyen a Lekérdezés lap Futtatás, Lekérdezés változók és Eredmények panelre van osztva.

  4. A lekérdezés végrehajtása – Válassza a Futtatás lehetőséget a lekérdezés végrehajtásához és az adatforrás adatainak lekéréséhez.

Kód létrehozása

Az API-szerkesztő automatikusan létrehoz egy python- vagy Node.js kódot, amely tükrözi a szerkesztőben jelenleg tesztelt GraphQL-lekérdezést vagy -mutációt. A lekérdezések prototípusának és finomításának során a létrehozott kód ennek megfelelően frissül. Ha elégedett az eredménnyel, megtekintheti és másolhatja a létrehozott kódot, hogy helyileg fusson tesztelési célokra, vagy újra felhasználhatja azt az alkalmazásfejlesztési folyamatban.

Fontos

A létrehozott kód interaktív böngészőbeli hitelesítő adatokat használ, és csak tesztelési célokra használható. Éles környezetben mindig regisztráljon egy alkalmazást a Microsoft Entra-ban, és használja a megfelelő client_id és hatóköröket. Az Connect Applications oldalon találhat egy teljes körű példát mintakóddal.

Első lépések:

  1. Lekérdezés írása – Adja meg a következő minta lekérdezést (vagy sajátját) a Lekérdezésszerkesztőben:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Futtassa a lekérdezést – Válassza a Futtatás lehetőséget a lekérdezés végrehajtásához, és a folytatás előtt ellenőrizze, hogy megfelelően működik-e a szerkesztőben.

  3. Kód létrehozása – Válassza a Kód létrehozása gombot, majd válassza ki a kívánt programozási nyelvet (Python vagy JavaScript/Node.JS):

    Képernyőkép az API-szerkesztő képernyőről, amelyen a legördülő lista látható a létrehozott kód programozási nyelvének kiválasztásához.

  4. Ezután átmásolhatja a létrehozott kódot, és fájlként mentheti egy helyi mappába. A választott nyelvtől függően kövesse az alábbi gyors lépéseket a helyi teszteléshez:

Python

  1. Hozzon létre egy elnevezett editor.py fájlt, és illessze be a létrehozott kódot a fenti példa lekérdezésből.

  2. Hozzon létre egy virtuális környezetet a parancs futtatásával python -m venv .venv.

  3. Aktiválja a venv következőt: futtatás .venv\Scripts\activate vagy source .venv/bin/activate.

  4. Telepítse a szükséges függőséget a futtatással pip install azure-identity.

  5. Hajtsa végre a kódot a következővel python editor.py: .

  6. A rendszer arra kéri, hogy jelentkezzen be egy böngészőablakban a kérés hitelesítéséhez.

  7. Az API válasza a konzolon lesz kinyomtatva.

    {
    	"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. Hozzon létre egy elnevezett editor.js fájlt, és illessze be a létrehozott kódot a fenti példa lekérdezésből.

  2. Ugyanabban a mappában editor.jshozzon létre egy package.json fájlt, amely a következő tartalommal rendelkezik:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Node.js telepítése a fejlesztőgépre (az npm-et is beleértve)

  4. Futtassa npm install @azure/identity vagy hasonló parancsot a kiválasztott csomagkezelőben az identitástár legújabb verziójának telepítéséhez.

  5. A kód futtatásához használja a node editor.js parancsot.

  6. A rendszer arra kéri, hogy jelentkezzen be egy böngészőablakban a kérés hitelesítéséhez.

  7. Az API válasza a konzolon lesz kinyomtatva.

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

Lekérdezések és mutációk fejlesztése

Az alábbi példák a GraphQL-lekérdezést és a mutáció szintaxisát mutatják be az AdventureWorks-mintaadatok használatával. Ezek a példák feltételezik, hogy írási műveleteket (mutációkat) támogató Fabric-adattárházzal dolgozik. Az SQL Analytics-végpontokon (például Lakehouse-okon és tükrözött adatbázisokon) keresztül elért adatforrások írásvédettek, és csak a lekérdezéseket támogatják, nem a mutációkat.

Tekintse át ezt a rövid GraphQL-sémarészletet az AdventureWorksből. Egy olyan típust Product határoz meg, amely lekérdezéseket tartalmaz egyetlen termék olvasásához vagy az összes termék listázásához, valamint a termékek létrehozásához, frissítéséhez vagy törléséhez szükséges mutációkat, amelyek támogatják az összes CRUDL-használati esetet (létrehozás, olvasás, frissítés, törlés, lista).

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

Olvassa el a GraphQL-en keresztül közzétett adatokat a sémában definiált lekérdezések használatával. A products_by_pk lekérdezés egyetlen terméket kér le az elsődleges kulcsával:

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

Válasz:

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

Használjon mutációkat, például createProduct adatokat írjon, és hozzon létre egy új terméket a szükséges paraméterekkel.

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

Válasz:

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

Lekérdezési változók

A Lekérdezés lap jobb oldalán található Lekérdezés változók panel használatával paramétereket adhat át változóként a lekérdezéseknek vagy mutációknak. A változók más programozási nyelvek változóihoz hasonlóan működnek. A rendszer minden változót egy névvel deklarál, amely a benne tárolt érték elérésére szolgál. Az előző mutációs példát használva kissé módosítja azt a lekérdezési változók használatára.

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

Változók definiálása a Lekérdezés változók panelen az alábbi példával.

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

A változók tisztábbá teszik a mutációs kódot, könnyebben olvashatók, tesztelhetők és módosíthatók. Emellett a változók módosításával egyszerűen újra felhasználhatja ugyanazt a mutációt különböző értékekkel.