Κοινοποίηση μέσω


API Fabric για το πρόγραμμα επεξεργασίας GraphQL

Το API Fabric για GraphQL παρέχει ένα περιβάλλον ανάπτυξης GraphQL με γραφικά στο πρόγραμμα περιήγησης, το οποίο επιτρέπει σε μια διαδραστική παιδική χαρά να συντάσσει, να δοκιμάζει και να βλέπει τα ζωντανά αποτελέσματα των ερωτημάτων και των μεταλλάξεων σας GraphQL.

Ποιος χρησιμοποιεί τον επεξεργαστή GraphQL

Ο επεξεργαστής GraphQL είναι απαραίτητος για:

  • Οι προγραμματιστές εφαρμογών δημιουργούν πρωτότυπα και δοκιμάζουν ερωτήματα σε δεδομένα Fabric πριν τα εφαρμόσουν σε εφαρμογές
  • Μηχανικοί δεδομένων που εξερευνούν δομές δεδομένων λιμνών και αποθηκών και επικυρώνουν σχέδια σχημάτων GraphQL
  • Οι συμβάλλοντες χώρου εργασίας Fabric δοκιμάζουν δικαιώματα πρόσβασης σε δεδομένα και αντιμετωπίζουν προβλήματα ερωτημάτων
  • Προγραμματιστές BI που μαθαίνουν τη δομή του API και δημιουργούν μοτίβα πρόσβασης δεδομένων για προσαρμοσμένες εφαρμογές
  • Ομάδες ανάπτυξης που συνεργάζονται για την ανάπτυξη ερωτημάτων και την αντιμετώπιση προβλημάτων πρόσβασης σε δεδομένα σε χώρους εργασίας Fabric

Χρησιμοποιήστε το πρόγραμμα επεξεργασίας όποτε χρειάζεται να αναπτύξετε, να δοκιμάσετε ή να εντοπίσετε σφάλματα σε ερωτήματα GraphQL σε σχέση με τις προελεύσεις δεδομένων Fabric.

Ξεκινήστε με τον επεξεργαστή GraphQL

Ακολουθήστε αυτά τα βήματα για να ξεκινήσετε να χρησιμοποιείτε τον επεξεργαστή GraphQL:

  1. Ανοίξτε το στοιχείο API GraphQL - Μεταβείτε στον χώρο εργασίας σας στο Fabric και ανοίξτε το στοιχείο API για GraphQL.

  2. Πρόσβαση στο πρόγραμμα επεξεργασίας - Επιλέξτε Ερώτημα στην κάτω αριστερή γωνία της οθόνης της πύλης σας.

    Στιγμιότυπο οθόνης που δείχνει πού εμφανίζεται η επιλογή

  3. Γράψτε το ερώτημά σας - Πληκτρολογήστε τα ερωτήματά σας απευθείας στην καρτέλα Ερώτημα . Χρησιμοποιήστε το Intellisense με συντομεύσεις πληκτρολογίου:

    • Windows: Ctrl + Διάστημα
    • macOS: Command + Διάστημα

    Στιγμιότυπο οθόνης του προγράμματος επεξεργασίας API οθόνη, η οποία εμφανίζει μια καρτέλα Ερώτημα χωρισμένη σε τμήματα παραθύρου Εκτέλεση, Μεταβλητές ερωτήματος και Αποτελέσματα.

  4. Εκτέλεση του ερωτήματος - Επιλέξτε Εκτέλεση για να εκτελέσετε το ερώτημα και να ανακτήσετε δεδομένα από την προέλευση δεδομένων σας.

Δημιουργία κώδικα

Ο επεξεργαστής API δημιουργεί αυτόματα στερεότυπο κώδικα Python ή Node.js που αντικατοπτρίζει το ερώτημα ή τη μετάλλαξη GraphQL που δοκιμάζετε αυτήν τη στιγμή στο πρόγραμμα επεξεργασίας. Καθώς δημιουργείτε πρωτότυπα και βελτιώνετε τα ερωτήματά σας, ο κώδικας που δημιουργείται ενημερώνεται ανάλογα. Μόλις είστε ικανοποιημένοι με τα αποτελέσματα, μπορείτε να προβάλετε και να αντιγράψετε τον κώδικα που δημιουργήθηκε για να εκτελεστεί τοπικά για δοκιμαστικούς σκοπούς ή να τον επαναχρησιμοποιήσετε στη διαδικασία ανάπτυξης της εφαρμογής σας.

Σημαντικό

Ο κώδικας που δημιουργείται χρησιμοποιεί αλληλεπιδραστικά διαπιστευτήρια προγράμματος περιήγησης και θα πρέπει να χρησιμοποιείται μόνο για σκοπούς δοκιμής. Στην παραγωγή, καταχωρήστε πάντα μια εφαρμογή στο Microsoft Entra και χρησιμοποιήστε τις κατάλληλες client_id εμβέλειες. Μπορείτε να βρείτε ένα τελικό παράδειγμα με δείγμα κώδικα στη Σύνδεση εφαρμογών.

Για να ξεκινήσετε:

  1. Σύνταξη ερωτήματος - Εισαγάγετε το ακόλουθο δείγμα ερωτήματος (ή το δικό σας) στο πρόγραμμα επεξεργασίας ερωτημάτων:

    query {
      addresses(first: 5) {
         items {
            AddressID
            City
            StateProvince
            CountryRegion
         }  
      }
    }
    
  2. Εκτέλεση του ερωτήματος - Επιλέξτε Εκτέλεση για να εκτελέσετε το ερώτημα και να επαληθεύσετε ότι λειτουργεί σωστά στο πρόγραμμα επεξεργασίας πριν συνεχίσετε.

  3. Δημιουργία κώδικα - Επιλέξτε το κουμπί Δημιουργία κώδικα και, στη συνέχεια, επιλέξτε τη γλώσσα προγραμματισμού που προτιμάτε (Python ή JavaScript/Node.JS):

    Στιγμιότυπο οθόνης της οθόνης επεξεργασίας API που δείχνει το αναπτυσσόμενο μενού για να επιλέξετε τη γλώσσα προγραμματισμού για τον κώδικα που δημιουργείται.

  4. Στη συνέχεια, μπορείτε να αντιγράψετε τον κωδικό που δημιουργήθηκε και να τον αποθηκεύσετε ως αρχείο σε έναν τοπικό φάκελο. Ανάλογα με την επιλεγμένη γλώσσα, ακολουθήστε αυτά τα γρήγορα βήματα για να δοκιμάσετε τοπικά:

Python

  1. Δημιουργήστε ένα αρχείο με το όνομα editor.py και επικολλήστε τον κώδικα που δημιουργήθηκε από το παραπάνω παράδειγμα ερωτήματος.

  2. Δημιουργήστε ένα εικονικό περιβάλλον εκτελώντας την εντολή python -m venv .venv.

  3. Ενεργοποιήστε το εκτελώντας venv.venv\Scripts\activate ή source .venv/bin/activate.

  4. Εγκαταστήστε την απαιτούμενη εξάρτηση εκτελώντας pip install azure-identityτο .

  5. Εκτελέστε τον κώδικα με python editor.pyτο .

  6. Θα σας ζητηθεί να συνδεθείτε μέσω ενός παραθύρου του προγράμματος περιήγησης για να ελέγξετε την ταυτότητα του αιτήματος.

  7. Η απόκριση από το API εκτυπώνεται στην κονσόλα.

    {
    	"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. Δημιουργήστε ένα αρχείο με το όνομα editor.js και επικολλήστε τον κώδικα που δημιουργήθηκε από το παραπάνω παράδειγμα ερωτήματος.

  2. Στον ίδιο φάκελο με editor.jsτο , δημιουργήστε ένα package.json αρχείο με τα ακόλουθα περιεχόμενα:

    {
      "type": "module",
      "dependencies": {}
    }
    
  3. Εγκαταστήστε Node.js στον υπολογιστή ανάπτυξης (περιλαμβάνει npm)

  4. Εκτελέστε npm install @azure/identity ή μια παρόμοια εντολή στον επιλεγμένο διαχειριστή πακέτων για να εγκαταστήσετε την πιο πρόσφατη έκδοση της βιβλιοθήκης ταυτοτήτων.

  5. Εκτελέστε node editor.js για να εκτελέσετε τον κώδικα.

  6. Θα σας ζητηθεί να συνδεθείτε μέσω ενός παραθύρου του προγράμματος περιήγησης για να ελέγξετε την ταυτότητα του αιτήματος.

  7. Η απόκριση από το API εκτυπώνεται στην κονσόλα.

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

Ανάπτυξη ερωτημάτων και μεταλλάξεων

Τα ακόλουθα παραδείγματα δείχνουν τη σύνταξη ερωτήματος και μετάλλαξης GraphQL χρησιμοποιώντας το δείγμα δεδομένων AdventureWorks. Αυτά τα παραδείγματα υποθέτουν ότι εργάζεστε με μια αποθήκη δεδομένων Fabric που υποστηρίζει λειτουργίες εγγραφής (μεταλλάξεις). Οι προελεύσεις δεδομένων στις οποίες έχετε πρόσβαση μέσω των τελικών σημείων του SQL Analytics (όπως τα Lakehouses και οι κατοπτρικές βάσεις δεδομένων) είναι μόνο για ανάγνωση και υποστηρίζουν μόνο ερωτήματα και όχι μεταλλάξεις.

Διαβάστε αυτό το σύντομο απόσπασμα σχήματος GraphQL από το AdventureWorks. Ορίζει έναν Product τύπο με ερωτήματα για την ανάγνωση ενός μεμονωμένου προϊόντος ή τη λίστα όλων των προϊόντων και μεταλλάξεις για τη δημιουργία, ενημέρωση ή διαγραφή προϊόντων, υποστηρίζοντας όλες τις περιπτώσεις χρήσης CRUDL (δημιουργία, ανάγνωση, ενημέρωση, διαγραφή, λίστα).

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

Διαβάστε τα δεδομένα που εκτίθενται μέσω του GraphQL χρησιμοποιώντας οποιοδήποτε ερώτημα ορίζεται στο σχήμα. Το products_by_pk ερώτημα ανακτά ένα μεμονωμένο προϊόν από το πρωτεύον κλειδί του:

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

Απάντηση:

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

Χρησιμοποιήστε μεταλλάξεις όπως createProduct για να γράψετε δεδομένα και να δημιουργήσετε ένα νέο προϊόν με τις απαιτούμενες παραμέτρους.

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

Απάντηση:

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

Μεταβλητές ερωτήματος

Χρησιμοποιήστε το τμήμα παραθύρου Μεταβλητές ερωτήματος στη δεξιά πλευρά της καρτέλας Ερώτημα για να μεταβιβάσετε παραμέτρους ως μεταβλητές στα ερωτήματα ή τις μεταλλάξεις σας. Οι μεταβλητές λειτουργούν σαν μεταβλητές σε άλλες γλώσσες προγραμματισμού. Κάθε μεταβλητή δηλώνεται με ένα όνομα που χρησιμοποιείται για την πρόσβαση στην τιμή που είναι αποθηκευμένη σε αυτήν. Χρησιμοποιώντας το προηγούμενο παράδειγμα μετάλλαξης, το τροποποιείτε ελαφρώς για να χρησιμοποιήσετε μεταβλητές ερωτήματος.

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

Ορίστε μεταβλητές στο τμήμα παραθύρου Μεταβλητές ερωτήματος χρησιμοποιώντας το παρακάτω παράδειγμα.

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

Οι μεταβλητές καθιστούν τον κώδικα μετάλλαξης καθαρότερο, ευκολότερο να διαβαστεί, να δοκιμαστεί και να τροποποιηθεί. Διευκολύνουν επίσης την επαναχρησιμοποίηση της ίδιας μετάλλαξης με διαφορετικές τιμές αλλάζοντας απλώς τις μεταβλητές.