Bagikan melalui


Fabric API untuk editor GraphQL

Fabric API untuk GraphQL menyediakan lingkungan pengembangan GraphQL grafis di dalam browser, yang memungkinkan ruang interaktif untuk menyusun, menguji, dan melihat hasil langsung dari kueri dan mutasi GraphQL Anda.

Siapa yang menggunakan editor GraphQL

Editor GraphQL sangat penting untuk:

  • Pengembang aplikasi membuat prototipe dan menguji kueri terhadap data Fabric sebelum menerapkannya dalam aplikasi
  • Insinyur data yang menjelajahi struktur data lakehouse dan gudang data serta memvalidasi desain skema GraphQL
  • Kontributor ruang kerja Fabric menguji izin akses data dan memecahkan masalah kueri
  • Pengembang BI mempelajari struktur API dan membuat pola akses data untuk aplikasi kustom
  • Tim pengembangan berkolaborasi dalam pengembangan kueri dan pemecahan masalah akses data dalam ruang kerja Fabric

Gunakan editor setiap kali Anda perlu mengembangkan, menguji, atau men-debug kueri GraphQL secara interaktif terhadap sumber data Fabric Anda.

Mulai menggunakan editor GraphQL

Ikuti langkah-langkah ini untuk mulai menggunakan editor GraphQL:

  1. Buka item API GraphQL - Navigasikan ke ruang kerja Anda di Fabric dan buka API untuk item GraphQL.

  2. Akses editor - Pilih Kueri di sudut kiri bawah layar portal Anda.

    Cuplikan layar memperlihatkan tempat opsi Kueri muncul di sudut kiri bawah layar Fabric.

  3. Tulis kueri Anda - Ketik kueri GraphQL Anda langsung di tab Kueri . Gunakan Intellisense dengan pintasan keyboard:

    • Windows: CTRL + Spasi
    • macOS: Perintah + Spasi

    Cuplikan layar editor API, yang memperlihatkan tab Kueri dibagi menjadi panel Jalankan, Variabel kueri, dan Hasil.

  4. Jalankan kueri - Pilih Jalankan untuk menjalankan kueri dan mengambil data dari sumber data Anda.

Membuat kode

Editor API secara otomatis menghasilkan kode Python atau Node.js boilerplate yang mencerminkan kueri atau mutasi GraphQL yang saat ini Anda uji di editor. Saat Anda membuat prototipe dan menyempurnakan kueri Anda, kode yang dihasilkan akan diperbarui. Setelah puas dengan hasilnya, Anda dapat melihat dan menyalin kode yang dihasilkan untuk dijalankan secara lokal untuk tujuan pengujian atau menggunakannya kembali dalam proses pengembangan aplikasi Anda.

Penting

Kode yang dihasilkan menggunakan kredensial browser interaktif dan harus digunakan hanya untuk tujuan pengujian. Dalam produksi, selalu daftarkan aplikasi di Microsoft Entra dan gunakan client_id serta cakupan yang sesuai. Anda dapat menemukan contoh end-to-end dengan kode sampel di Connect Applications.

Untuk memulai:

  1. Tulis kueri - Masukkan kueri sampel berikut (atau kueri Anda sendiri) di editor Kueri:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Jalankan kueri - Pilih Jalankan untuk menjalankan kueri dan verifikasi bahwa kueri berfungsi dengan benar di editor sebelum melanjutkan.

  3. Buat kode - Pilih tombol Buat kode lalu pilih bahasa pemrograman pilihan Anda (Python atau JavaScript/Node.JS):

    Cuplikan layar editor API memperlihatkan menu dropdown untuk memilih bahasa pemrograman untuk kode yang dihasilkan.

  4. Anda kemudian dapat menyalin kode yang dihasilkan dan menyimpannya sebagai file di folder lokal. Bergantung pada bahasa yang dipilih, ikuti langkah-langkah cepat ini untuk menguji secara lokal:

Python

  1. Buat file bernama editor.py dan tempel kode yang dihasilkan dari contoh kueri di atas.

  2. Buat lingkungan virtual dengan menjalankan perintah python -m venv .venv.

  3. Aktifkan venv dengan menjalankan .venv\Scripts\activate atau source .venv/bin/activate.

  4. Instal dependensi yang diperlukan dengan menjalankan pip install azure-identity.

  5. Jalankan kode dengan python editor.py.

  6. Anda diminta untuk masuk melalui jendela browser untuk mengautentikasi permintaan.

  7. Respons dari API dicetak di konsol.

    {
    	"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. Buat file bernama editor.js dan tempel kode yang dihasilkan dari contoh kueri di atas.

  2. Di folder yang sama dengan editor.js, buat package.json file dengan konten berikut:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Instal Node.js pada komputer pengembangan Anda (termasuk npm)

  4. Jalankan npm install @azure/identity atau perintah serupa di manajer paket yang Anda pilih untuk menginstal versi terbaru pustaka identitas.

  5. Jalankan node editor.js untuk menjalankan kode.

  6. Anda diminta untuk masuk melalui jendela browser untuk mengautentikasi permintaan.

  7. Respons dari API dicetak di konsol.

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

Pengembangan kueri dan mutasi

Contoh berikut menunjukkan kueri GraphQL dan sintaks mutasi menggunakan data sampel AdventureWorks. Contoh-contoh ini mengasumsikan Anda bekerja dengan Gudang Data Fabric yang mendukung operasi tulis (mutasi). Sumber data yang diakses melalui Titik Akhir Analitik SQL (seperti Lakehouses dan database yang dicerminkan) bersifat baca-saja dan hanya mendukung kueri, bukan mutasi.

Tinjau kutipan skema GraphQL singkat ini dari AdventureWorks. Ini mendefinisikan jenis Product dengan kueri untuk membaca sebuah produk atau mencantumkan semua produk, dan perubahan untuk membuat, memperbarui, atau menghapus produk, mendukung semua kasus penggunaan CRUDL (membuat, membaca, memperbarui, menghapus, mencantumkan).

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

Baca data yang diekspos melalui GraphQL menggunakan kueri apa pun yang ditentukan dalam skema. Kueri products_by_pk mengambil satu produk berdasarkan kunci utamanya.

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

Respons:

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

Gunakan mutasi seperti createProduct untuk menulis data dan membuat produk baru dengan parameter yang diperlukan.

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

Respons:

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

Variabel kueri

Gunakan panel Variabel kueri di sisi kanan tab Kueri untuk meneruskan parameter sebagai variabel ke kueri atau mutasi Anda. Variabel berfungsi seperti variabel dalam bahasa pemrograman lainnya. Setiap variabel dideklarasikan dengan nama yang digunakan untuk mengakses nilai yang disimpan di dalamnya. Menggunakan contoh mutasi sebelumnya, Anda mengubahnya sedikit untuk menggunakan variabel kueri.

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

Tentukan variabel di panel Variabel kueri menggunakan contoh berikut.

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

Variabel membuat kode mutasi lebih bersih, lebih mudah dibaca, diuji, dan dimodifikasi. Mereka juga memudahkan untuk menggunakan kembali mutasi yang sama dengan nilai yang berbeda hanya dengan mengubah variabel.