Datensatzdaten mit dem GraphQL-API-Framework abfragen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Erstellen Sie eine anwenderdefinierte GraphQL-API, um Datensatzdaten aus einer Komponente oder einem Drittparteisystem abzufragen.

    Sie können beispielsweise eine Komponente erstellen, die die Fälle anzeigt, die einem SLA zugeordnet sind. Sie können verwenden Next Experience UI Framework Um die benötigte Komponente zu entwickeln und auf Falldaten von der Plattform zuzugreifen, indem ein GraphQL-Schema erstellt wird, das Daten in der Falltabelle definiert.

    Weitere Informationen zur Entwicklung von Komponenten finden Sie unter Komponenten für Arbeitsbereich werden entwickelt .

    Vorteile von GraphQL

    GraphQL ist eine Webabfragesprache, die für die clientseitige Entwicklung optimiert ist. Mit geskriptetem GraphQL können Sie:

    • Erkennen Sie Felder und Objekte, die für die Abfrage durch Introspektion verfügbar sind.
    • Fragen Sie die genauen Daten ab, die Sie von einer Komponente benötigen.
    • Verwalten Sie mehrere mögliche Abfragen über eine einzige API im Gegensatz zu mehreren Endpunkten für eine REST-Anforderung.
    • Integrieren Sie Systeme von Drittparteien, indem Sie das Schema öffentlich machen.
    • Generieren Sie die GraphQL-Abfrage aus Ihrer Komponente, und verarbeiten Sie die Antwort.

    Was Sie wissen sollten, bevor Sie beginnen

    Bevor Sie mit der Erstellung anwenderdefinierter GraphQL-APIs beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

    • GraphQL-Wissen zum Erstellen eines Schemas.
    • JavaScript-Wissen zum Definieren des API-Verhaltens.
    • Allgemeines Wissen über Webkomponentenkonzepte.
    • Ein anwenderdefinierter Arbeitsbereich Komponente zum Verbrauchen von Datensatzdaten.
    • Verständnis von ServiceNow Datenmodell, das Sie im Schema angeben möchten.
    • GlideRecord-Wissen, um Felder zu Datensatzdaten in Ihren Resolver-Skripts zuzuordnen.

    GraphQL-Übersicht

    Das Erstellen einer geskripteten GraphQL-API enthält diese Teile:

    GraphQL-Schemadefinitionssprache (SDL)
    Definieren Sie die Struktur und den Datentyp von Feldern, die in einer GraphQL-Abfrage verfügbar sind. Sie können SDL mit definieren Schema Skriptfeld in der Tabelle „GraphQL-Skriptschemas“ [sys_graphql_Schema]. SDL unterstützt nur Abfrage- und Mutationsvorgänge.
    Resolver
    Definieren Sie die von jedem Feld zurückgegebenen Daten. Sie können die Resolver für jedes Feld in der zugehörigen Liste GraphQL-Skriptlöser im Formular GraphQL-Skriptschemas definieren.
    Typeresolver
    Lösen Sie Schnittstellen und Verbindungen in konkrete GraphQL-Typen auf. Sie können beispielsweise eine vereinigung zwischen definieren Incident Geben Sie und ein ein Problem Typ. Verwenden Sie das typeresolver-Skript, um zu definieren, wann welcher zurückgegeben werden soll. Sie können die Typeresolver in der zugehörigen Liste GraphQL Scripted Typeresolvers im Formular GraphQL Scripted Schemas definieren.
    Resolver-Zuordnungen
    Ordnen Sie Resolver Feldern im Schema zu. Sie können Resolver-Zuordnungen in der zugehörigen Liste GraphQL-Skriptlösungszuordnungen im Formular GraphQL-Skriptschemas definieren.

    Weitere Informationen zur GraphQL-Abfragesprache finden Sie unter GraphQL-Website .

    Um Abfragen für Ihre GraphQL-APIs zu testen, können Sie GraphQL Explorer verwenden, ein integriertes GraphQL-Testtool. Weitere Informationen finden Sie unter Testen Sie GraphQL-APIs mit GraphQL Explorer.

    Einschränkungen

    Die folgenden GraphQL-Funktionen werden nicht unterstützt:

    • Abonnementvorgänge
    • Anwenderdefinierte Skalartypen

    Introspektion

    Standardmäßig sind introspektive Abfragen in Ihren anwenderdefinierten Schemas nicht aktiviert. Informationen zum Aktivieren der Introspektion finden Sie unter Aktivieren Sie introspektive Abfragen für GraphQL-Schemas.

    Namespaces

    GraphQL-APIs haben zwei verschiedene Namespaces:

    Anwendungsnamespace
    Der Namespace für die anwenderdefinierte Anwendung. Weitere Informationen zu Anwendungsnamespaces finden Sie unter Anwendungsbereich .
    Schemanamespace
    Der Namespace für das Schema, um sicherzustellen, dass alle Abfragen eindeutig sind. Sie können mehrere Schema-Namespaces in einer einzelnen Anwendung haben.

    Beim Abfragen von Daten müssen Sie beide Namespaces in Ihre Abfrage aufnehmen. Die folgende Abfrage sucht beispielsweise nach Daten mit den folgenden Namespaces:

    • Anwendungs-Namespace: X_Graph_scope
    • Schema-Namespace: Planet
    query {
      x_graph_scope {
        planet {
          findAll {
            name
            mass
            distance
          }
        }
      }
    }

    Richtlinien und globale Funktionen

    @Source Schemaanweisung

    Ordnet ein GraphQL-Feld dem Wert einer Eigenschaft des übergeordneten Objekts zu. Wenn das Feld über ein separates Resolver-Skript verfügt, verwendet das System den Datensatz, in den es aufgelöst wird, anstelle des übergeordneten Objekts.

    Verwenden Sie @Source anweisung in Ihrem Schemaskript.

    @Zurückstellen Abfrageanweisung
    Verschieben Sie die Verarbeitung eines GraphQL-Fragments bis zu einem späteren Zeitpunkt in der Abfrage. Verwenden Sie diese Abfrageanweisung, um die Rückgabe von Daten für langsam antwortende Felder in einem Fragment zu verzögern. Streamen Sie die Feldergebnisse des zurückgestellten Fragments als mehrteilige Antwort.
    Hinweis:
    Zur Verwendung von @Zurückstellen anweisung, muss Ihr GraphQL-Client mehrteilige/gemischte HTTP-Header akzeptieren. Legen Sie beispielsweise die HTTP-Header auf fest Akzeptieren: Mehrteilig/gemischt; Grenze=„-“ .

    Verwenden Sie @Zurückstellen richtlinie zur Verbesserung der Zeit bis zur Interaktion des Anwenders. Vermeiden Sie es, diese Abfrageanweisung wahllos anzuwenden, da dies auch zu Leistungsverschlechterungen führen kann. Führen Sie Leistungstests durch, um zu bestimmen, welche Felder zurückgestellt werden können, um die Leistung zu verbessern.

    Resolver-Funktionen

    Diese Funktionen sind global verfügbar umgebung Objekt.

    • GetArguments() : Gibt die Argumente des vorherigen Felds zurück.
    • GetSource() : Gibt das übergeordnete Objekt zurück.

    Verwenden Sie in Ihrem Resolver-Skript.

    Typeresolver-Funktionen

    Diese Funktionen sind global verfügbar umgebung Objekt.

    • GetArguments() : Gibt die Argumente des vorherigen Felds zurück.
    • GetObject() : Gibt das übergeordnete Objekt zurück.
    • GetTypeName() : Gibt den Namen der Schnittstelle oder des vereinigungstyps zurück.

    Verwenden Sie in Ihrem Typeresolver-Skript.

    Demo-Anwendung

    Aktivieren Sie das Plugin „GraphQL Framework Demo Application“ (com.glide.graphql.framework.demo), um ein Demo-GraphQL-PTO-Kalenderschema mit Mutationen und Abfragen anzuzeigen.