Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
Buka item API GraphQL - Navigasikan ke ruang kerja Anda di Fabric dan buka API untuk item GraphQL.
Akses editor - Pilih Kueri di sudut kiri bawah layar portal Anda.
Tulis kueri Anda - Ketik kueri GraphQL Anda langsung di tab Kueri . Gunakan Intellisense dengan pintasan keyboard:
- Windows: CTRL + Spasi
- macOS: Perintah + Spasi
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:
Tulis kueri - Masukkan kueri sampel berikut (atau kueri Anda sendiri) di editor Kueri:
query { addresses(first: 5) { items { AddressID City StateProvince CountryRegion } } }Jalankan kueri - Pilih Jalankan untuk menjalankan kueri dan verifikasi bahwa kueri berfungsi dengan benar di editor sebelum melanjutkan.
Buat kode - Pilih tombol Buat kode lalu pilih bahasa pemrograman pilihan Anda (Python atau JavaScript/Node.JS):
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
Buat file bernama
editor.pydan tempel kode yang dihasilkan dari contoh kueri di atas.Buat lingkungan virtual dengan menjalankan perintah
python -m venv .venv.Aktifkan
venvdengan menjalankan.venv\Scripts\activateatausource .venv/bin/activate.Instal dependensi yang diperlukan dengan menjalankan
pip install azure-identity.Jalankan kode dengan
python editor.py.Anda diminta untuk masuk melalui jendela browser untuk mengautentikasi permintaan.
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
Buat file bernama
editor.jsdan tempel kode yang dihasilkan dari contoh kueri di atas.Di folder yang sama dengan
editor.js, buatpackage.jsonfile dengan konten berikut:{ "type": "module", "dependencies": {} }Instal Node.js pada komputer pengembangan Anda (termasuk npm)
Jalankan
npm install @azure/identityatau perintah serupa di manajer paket yang Anda pilih untuk menginstal versi terbaru pustaka identitas.Jalankan
node editor.jsuntuk menjalankan kode.Anda diminta untuk masuk melalui jendela browser untuk mengautentikasi permintaan.
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.