Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Erfahren Sie, wie Sie eine Front-End-Anwendung mit React, Apollo Client und TypeScript erstellen, die in eine in Microsoft Fabric gehostete GraphQL-API integriert wird. In diesem Lernprogramm werden lokale Entwicklungstools wie AutoVervollständigen, Codegenerierung und IntelliSense für eine optimale Entwicklerumgebung eingerichtet.
Wer sollte VS Code-Entwicklungstools verwenden?
Die lokale Entwicklung mit VS Code wurde für Folgendes entwickelt:
- React-Entwickler erstellen Webanwendungen, die Fabric Lakehouse- und Warehouse-Daten über GraphQL nutzen
- TypeScript-Entwickler , die typsichere Clientcodegenerierung für Fabric GraphQL-APIs benötigen
- Full-Stack-Entwickler , die benutzerdefinierte Analyseanwendungen auf der Fabric-Plattform mit lokaler IDE-Unterstützung erstellen
- Entwicklungsteams , die moderne Tools mit IntelliSense und Debuggen für Fabric-Datenzugriffsanwendungen benötigen
Verwenden Sie diesen Ansatz, wenn Sie React-Anwendungen erstellen, die umfangreiche IDE-Unterstützung, Codegenerierung und lokale Debugfunktionen mit TypeScript und Apollo Client benötigen.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie folgendes haben:
- Microsoft Fabric-Arbeitsbereichszugriff: Mitglied des Fabric-Arbeitsbereichs mit mindestens der Rolle "Mitwirkender " (oder höher: Administrator, Mitglied) zum Erstellen und Ändern von GraphQL-API-Elementen
- Datenquellenberechtigungen: Lese-/Schreibberechtigungen für die Datenquellen, die Sie über die GraphQL-API verfügbar machen möchten
- Node.js auf Ihrem Entwicklungscomputer installiert (einschließlich npm)
- Visual Studio Code auf Dem Entwicklungscomputer installiert
- Grundlegende Kenntnisse von React-, TypeScript- und GraphQL-Konzepten
Schritt 1: Erstellen einer GraphQL-API in Microsoft Fabric
Hinweis
In diesem Handbuch wird das Erstellen einer GraphQL-API aus einem SQL-Datenbankkontext veranschaulicht. Sie erstellen zuerst die SQL-Datenbank und erstellen dann die GraphQL-API direkt aus dieser Datenbank. Wenn Sie bereits über eine vorhandene GraphQL-API verfügen und eine Verbindung damit herstellen möchten, folgen Sie dem Leitfaden "Erste Schritte ", in dem Sie die API zuerst erstellen und dann eine Verbindung mit einer SQL-Datenbank oder einer anderen Datenquelle herstellen.
Erstellen einer SQL-Datenbank
So erstellen Sie eine SQL-Datenbank, die Beispieldaten für Ihre GraphQL-API enthält:
- Wählen Sie im Fabric-Arbeitsbereich "Neues Element" aus.
- Wählen Sie sql-Datenbank (Vorschau) aus.
- Geben Sie einen Namen für Ihre Datenbank an.
- Wählen Sie Beispieldaten aus, um Automatisch Tabellen zu erstellen und mit Beispieldaten aufzufüllen. Dadurch wird die AdventureWorksLT-Beispieldatenbank mit dem Schema "SalesLT" erstellt, einschließlich Tabellen wie "SalesLT.Customer", "SalesLT.Product" und "SalesLT.SalesOrderHeader".
Tipp
Wenn Sie bereits über eine SQL-Datenbank mit Beispieldaten aus einem vorherigen Lernprogramm oder einer GraphQL-API-Erstellung verfügen, können Sie dieselbe Datenbank wiederverwenden. Eine einzelne Datenbank kann mehrere GraphQL-APIs unterstützen, daher ist es nicht erforderlich, eine neue Datenbank zu erstellen, wenn Sie bereits über eins mit dem SalesLT-Schema verfügen.
Erstellen der GraphQL-API
Nachdem Sie nun über eine SQL-Datenbank mit Beispieldaten verfügen, erstellen Sie die GraphQL-API:
Wählen Sie in Ihrer SQL-Datenbank im Menüband "Neue API für GraphQL " aus.
Geben Sie einen Namen für Ihre API an.
Wählen Sie alle SalesLT-Tabellen aus Ihrer Datenbank aus.
Wählen Sie "Laden" aus, um die API zu generieren.
Ihre GraphQL-API ist jetzt bereit und in Ihrem Fabric-Arbeitsbereich verfügbar.
Schritt 2: Einrichten Ihrer Entwicklungsumgebung
Führen Sie die folgenden Schritte aus, um die React-Startanwendung einzurichten, die erforderlichen Abhängigkeiten zu installieren und Visual Studio Code mit GraphQL-Unterstützung zu konfigurieren.
Klonen Sie die Startanwendung – Rufen Sie die React-Startanwendung aus dem Microsoft Fabric-Beispiel-Repository ab:
git clone https://github.com/microsoft/fabric-samples.git cd fabric-samples/docs-samples/data-engineering/GraphQL/React-Apollo-TSInstallieren von Abhängigkeiten – Installieren Sie die erforderlichen Pakete für die GraphQL-Entwicklung, sowie Autovervollständigung und Codegenerierung.
npm installInstallieren Sie die erforderliche Visual Studio Code-Erweiterung – Installieren Sie die GraphQL: Language Feature Support-Erweiterung in Visual Studio Code, um Syntaxmarkierung, Validierung und IntelliSense für GraphQL-Vorgänge zu ermöglichen.
Schritt 3: Konfigurieren des GraphQL-Schemas
Ein GraphQL-Schema definiert die Struktur Ihrer API – welche Daten verfügbar sind, welche Vorgänge Sie ausführen können und welche Beziehungen zwischen verschiedenen Datentypen bestehen. Ihre Entwicklungstools verwenden dieses Schema, um IntelliSense, Codevervollständigung und Typgenerierung bereitzustellen, wodurch es wesentlich einfacher ist, korrekte GraphQL-Abfragen und -Mutationen zu schreiben.
Sie können Ihr GraphQL-Schema auf zwei Arten abrufen:
Option 1: Exportieren des Schemas als statische Datei
- Wählen Sie in Ihrer Fabric GraphQL-API im Menüband "Schema exportieren " aus.
- Der heruntergeladene Dateiname enthält die ID Ihrer GraphQL-API (z. B
GraphQL_your-api-id_schema.graphql. ). Speichern Sie es in Ihrem Projektstammverzeichnis, und benennen Sie esschema.graphqlum – dies ist der Dateiname, den Sie in den folgenden Konfigurationsschritten verwenden.
Option 2: Remoteendpunkt verwenden
- Greifen Sie auf die GraphQL-API zu, die Sie im Fabric-Portal erstellt haben.
- Abrufen eines Autorisierungstokens mithilfe von PowerShell mit Get-PowerBIAccessToken
Hinweis
Die Remoteendpunktoption stellt zwar immer das am meisten up-to-date-Schema bereit, das abgerufene Token ist jedoch temporär und läuft stündlich ab. Sie sollten nur zu Test- und Entwicklungszwecken verwendet werden, wenn möglich, eine statische Datei verwenden, um Probleme mit dem Ablauf von Token zu vermeiden.
Schritt 4: Konfigurieren von IntelliSense und AutoVervollständigen
Jetzt richten Sie IntelliSense mithilfe des Schemas in Schritt 3 ein. Die Schemadatei, sei sie statisch oder von einem Remote-Endpunkt, ermöglicht es VS Code, während Sie GraphQL-Abfragen schreiben, Echtzeit-Code-Vorschläge, Fehlererkennung und Feldüberprüfung bereitzustellen.
Erstellen Sie eine Konfigurationsdatei im Projektstamm:
Verwenden einer statischen Schemadatei
Verwenden Sie die folgende Konfiguration, wenn Sie das Schema als statische Datei exportiert haben:
Erstellen:.graphqlrc.yml
schema: './schema.graphql'
documents: 'src/**/*.{ts,tsx,graphql,gql}'
Verwenden des Remoteendpunkts
Verwenden Sie die folgende Konfiguration, wenn Sie das Schema lieber direkt vom GraphQL-API-Endpunkt abrufen möchten:
Erstellen:graphql.config.yml
schema:
- https://your-graphql-endpoint.com/graphql:
headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
documents: src/**/*.{ts,tsx,graphql,gql}
Konfigurationsoptionen
- schema: Gibt den Speicherort Ihres GraphQL-Schemas an.
- documents: Definiert, welche Dateien intelliSense unterstützen sollen
Starten Sie nach dem Erstellen der Konfigurationsdatei Visual Studio Code neu, um sicherzustellen, dass Änderungen wirksam werden.
Schritt 5: Einrichten der Codegenerierung
Die GraphQL-Codegenerierung erstellt automatisch stark typierte TypeScript-Schnittstellen und React-Hooks aus Ihrem Schema und Ihren Vorgängen, reduziert Fehler und verbessert die Entwicklungseffizienz. Der Hauptzweck besteht darin, die Typsicherheit zu verbessern und die Entwicklung in GraphQL-Projekten zu optimieren, insbesondere bei der Arbeit mit stark typisierte Sprachen wie TypeScript.
Erstellen der Codegenkonfiguration
Option "Statische Datei"
Wenn Sie das Schema als statische Datei exportiert haben, erstellen Sie im Projektstamm eine Datei codegen.yml.
schema: './schema.graphql'
documents: './src/**/*.graphql'
generates:
src/generated/graphql.tsx:
plugins:
- typescript
- typescript-operations
- typescript-react-apollo
config:
withHooks: true
Option "Remote-Endpunkt"
Wenn Sie den Remoteendpunktansatz verwenden, erstellen Sie codegen.yml im Projektverzeichnis:
schema:
- https://your-graphql-endpoint.com/graphql:
headers:
Authorization: Bearer YOUR_ACCESS_TOKEN
documents: 'src/**/*.{ts,tsx,graphql,gql}'
generates:
src/generated/graphql.tsx:
plugins:
- typescript
- typescript-operations
- typescript-react-apollo
config:
withHooks: true
Aufschlüsselung der Konfiguration
- Schema: Pfad zur Schemadatei oder zum Remoteendpunkt
- documents: Glob-Muster zur Lokalisierung von GraphQL-Operationsdateien
- generiert: Gibt die Ausgabedatei für generierten Code an.
- plugins: Bestimmt, welcher Code generiert werden soll (TypeScript-Typen und React Apollo-Hooks)
Hinzufügen eines Codegenskripts
Fügen Sie das Codegenerierungsskript zur package.json Datei in Ihrem Projektverzeichnis hinzu (diese Datei wurde beim Klonen des Repositorys in Schritt 2 enthalten):
{
"scripts": {
"codegen": "graphql-codegen --config codegen.yml"
}
}
Schritt 6: Schreiben von GraphQL-Vorgängen
Erstellen Sie .graphql Dateien in Ihrem src/operations Verzeichnis, um Ihre Abfragen und Mutationen zu definieren. IntelliSense bietet AutoVervollständigen und Validierung.
Beispielabfragen
Erstellen Sie src/operations/queries.graphql und geben Sie die folgenden Abfragen ein:
Hier ist eine Beispielabfrage zum Abrufen von Kundendaten:
query GET_CUSTOMERS(
$after: String
$first: Int
$filter: CustomerFilterInput
$orderBy: CustomerOrderByInput
) {
customers(after: $after, first: $first, filter: $filter, orderBy: $orderBy) {
items {
CustomerID
FirstName
LastName
}
}
}
Hier ist eine Beispielmutation:
mutation ADD_CUSTOMER($input: CreateCustomerInput!) {
createCustomer(item: $input) {
CustomerID
FirstName
LastName
Title
Phone
PasswordHash
PasswordSalt
rowguid
ModifiedDate
NameStyle
}
}
Schritt 7: Generieren von Typen und Hooks
Führen Sie den Codegenerierungsbefehl aus, um TypeScript-Typen und React-Hooks zu erstellen:
npm run codegen
Nach erfolgreichem Abschluss haben Sie den generierten Code in src/generated/graphql.tsx folgendem Code enthalten:
- TypeScript-Schnittstellen für alle GraphQL-Typen
- Stark typierte React-Hooks für jeden Vorgang
- Eingabe- und Ausgabetypdefinitionen
Schritt 8: Verwenden von generierten Code in Ihren React-Komponenten
Importieren und verwenden Sie die generierten Hooks in Ihren React-Komponenten, z. B.:
import React from 'react';
import { useGetCustomersQuery, useAddCustomerMutation } from '../generated/graphql';
const CustomersComponent: React.FC = () => {
const { data, loading, error } = useGetCustomersQuery({
variables: { first: 10 }
});
const [addCustomer] = useAddCustomerMutation();
if (loading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
return (
<div>
{data?.customers?.items?.map(customer => (
<div key={customer.CustomerID}>
{customer.FirstName} {customer.LastName}
</div>
))}
</div>
);
};
export default CustomersComponent;
Schritt 9: Konfigurieren der Authentifizierung
Konfigurieren Sie die Microsoft Entra ID-Authentifizierung für Ihre Anwendung:
Erstellen Sie eine Microsoft Entra-App nach dem Abschnitt "Erstellen einer Microsoft Entra-App " in Connect-Anwendungen mit der Fabric-API für GraphQL.
Aktualisieren Sie die
authConfig.tsDatei in Ihrem Projekt mit den erforderlichen Parametern:
export const AUTH_CONFIG = {
clientId: "<Enter_the_Application_Id_Here>",
tenantId: "<Enter_the_Tenant_Id_Here>",
clientSecret: "<Enter_the_Client_Secret_Here>", //optional
}
export const GRAPHQL_ENDPOINT = '<Enter_the_GraphQL_Endpoint_Here>';
// The scope required for Fabric GraphQL API access
export const DEFAULT_SCOPE = "https://analysis.windows.net/powerbi/api/.default";
Die vollständige Konfigurationsdatei finden Sie im authConfig.ts Beispiel im Repository.
Schritt 10: Ausführen der Anwendung
Starten Sie Ihren Entwicklungsserver:
npm run dev
Ihre Anwendung startet im Browser unter http://localhost:3000. Sie werden aufgefordert, sich mit Ihren Microsoft-Anmeldeinformationen anzumelden, um auf die GraphQL-API-Daten zuzugreifen. Nach erfolgreicher Authentifizierung werden die Kundendaten aus der Tabelle SalesLT.Customer Ihrer Fabric SQL-Datenbank in der React-Anwendung angezeigt.