NowGraphQLService-Klasse – iOS

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • Die Klasse NowGraphQLService bietet Funktionen, mit denen Sie über die GraphQL- REST-API Anforderungen mithilfe von GraphQL-Abfragen für Daten in Ihrer Instanz ServiceNow stellen können.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    konfigurieren NowServiceKonfiguration Konfigurationseinstellungen, die bei der Initialisierung des Service bereitgestellt wurden.

    NowGraphQLService: asynchrone Würfe von execute(query: GraphQLQuery).

    Führt die angegebene GraphQL-Abfrage aus.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Auszuführende GraphQL-Abfrage.
    Tabelle : 3. Rückgaben
    Typ Beschreibung
    Daten Wird zurückgegeben, wenn die Methode erfolgreich ist. Abfragedaten, die aus der angegebenen Abfrage generiert wurden.
    NowDataError Wird ausgelöst, wenn die Methode fehlschlägt.
    • Zugriffstoken(ZugriffstokenProviderError)
      • AccessTokenProviderError: Fehlercode oder Meldung des Zugriffstokenanbieters.
        • „accessTokenRetrieval“ fehlgeschlagen
        • userSessionError(_ Fehler: Fehler)

      Wird ausgelöst, wenn im Zugriffstoken ein Fehler vorliegt.

    • „attachmentValidation“

      Wird ausgelöst, wenn die Validierung eines Anhangs fehlschlägt.

    • _badResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCode: Statuscode, der von der Instanz empfangen wurde.

      Wird ausgelöst, wenn eine Anforderung eine unerwartete Antwort zurückgibt

    • kann nichtDecodeModell(Decodierungsfehler)
      • DecodingError: Decodierungsfehler erkannt.

      Wird ausgelöst, wenn ein codierbares Modell nicht aus JSON decodiert werden kann.

    • kann nichtDecodeProperty(Typ: Beliebig, von: Zeichenfolge)
      • type: Umschlossener Typ zum Decodieren aus einer Zeichenfolge.
      • from: Zeichenfolge, die in den angegebenen Typ decodiert werden soll.

      Wird ausgelöst, wenn ein Wert mit Zeichenfolgenumbruch nicht aus JSON decodiert werden kann.

    • kann nicht EncodeModel (EncodingError)
      • EncodingError: Codierungsfehler erkannt.

      Wird ausgelöst, wenn ein codierbares Modell nicht in JSON codiert werden kann.

    • kannAntwort nichtParse

      Wird ausgelöst, wenn eine Antwort von der Instanz nicht im erwarteten Format analysiert werden kann.

    • ungültigeURL

      Wird ausgelöst, wenn eine URL nicht gebildet werden kann. Zum Beispiel, wenn die Zeichenfolge Zeichen enthält, die in einer URL unzulässig sind, oder ob es sich um eine leere Zeichenfolge handelt.

    • FehlendeAttachmentMetadata

      Wird ausgelöst, wenn der Header der Anhangmetadaten fehlt.

    • fehltServiceKonfiguration

      Wird ausgelöst, wenn eine erwartete Servicekonfiguration fehlt.

    • fehltSysID

      Wird ausgelöst, wenn ein erwarteter sys_id-Parameter fehlt.

    • Netzwerk(NetzwerkServiceFehler)
      • generischeError(Zeichenfolge)
      • VorgangAbgebrochen
      • service Deaktiviert
      • serverError(Fehler)
      • systemError(Fehler)

      Wird ausgelöst, wenn bei einem Netzwerkservice ein Fehler aufgetreten ist.

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    private func fetchArticles() async throws -> [Article] { 
        guard let graphQLService = graphQLService else { 
            throw ArticleListError.invalidGraphQLService 
        }         
    
        do {
            let data = try await graphQLService.execute(GraphQLQuery(query: recentlyPublishedQuery))
            let articles = try dataToArticleList(data)
        } catch let error as NowDataError {
            throw ArticleListError.fetchError(error)
        } catch {
            throw error
        }
    } 
      
    private let recentlyPublishedQuery = 
    """ 
    
    {
      GlideRecord_Query {
        kb_knowledge(queryConditions: "active=true^ORDERBYpublishedDESC" pagination: { limit: 10, offset: 0 }) {
          _results { 
            sys_id {
              value
            },
            number {
              displayValue
            },
            short_description {
              displayValue
            },
            author {
              displayValue
            }
            published {
              displayValue
            }
          }
        }
      }
    }
    """

    NowGraphQLService – execute(query: GraphQLQuery, Abschluss: @escaping (Ergebnis<Data, NowDataError> ))

    Führt die angegebene GraphQL-Abfrage aus.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Auszuführende GraphQL-Abfrage.
    Abschluss @escaping (Ergebnis<Data, NowDataError> ) Abschluss-Handler, der nach Abschluss der Abfrage ausgeführt werden soll.
    Rückgabewerte:
    • Erfolg: Gibt Abfragedaten zurück.
    • Fehler: NowDataError
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    Keine

    gqlService.execute(GraphQLQuery(query: myQuery)) { result in 
      switch result { 
      case .success(let data): 
        // use data 
      case .failure(let error): 
        // handle error 
      } 
    }

    NowGraphQLService – init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProvider)

    Erstellt einen NowGraphQLService basierend auf den angegebenen Parametern.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    konfigurieren NowServiceKonfiguration Konfigurationsparameter, die beim Initialisieren des Service verwendet werden sollen, z. B. die Bundle-ID der Anwendung, die in den Service integriert wird, und die URL der Instanz ServiceNow, auf die der NowGraphQLService zugreifen möchte.
    coreServiceProvider NowCoreServicebereitstellung Optional. Kernserviceanbieter
    Hinweis:
    Derzeit ist dieser Parameter erforderlich, auch wenn er als optional angezeigt wird.

    Standard: null

    NowGraphQLService – Herausgeber (für Abfrage: GraphQLQuery)

    Erstellt einen Herausgeber, um GraphQL-Daten anzufordern.

    Hinweis:
    Diese Methode ist veraltet. Sie sollten stattdessen die Implementierung der Methode „async/wait“ verwenden.
    Tabelle : 7. Parameter
    Name Typ Beschreibung
    für Abfrage GraphQLQuery Auszuführende GraphQL-Abfragezeichenfolge.
    Tabelle : 8. Rückgaben
    Typ Beschreibung
    Beliebiger Herausgeber<Data, NowDataError> Erfolg: GraphQL-Datensatz.

    Fehler: NowDataError

    Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.

    private func fetchArticles() -> AnyPublisher<[Article], ArticleListError> {
      guard let graphQLService = graphQLService else {
        return Fail(error: .invalidGraphQLService).eraseToAnyPublisher()
      }
            
      return graphQLService.publisher(for: GraphQLQuery(query: recentlyPublishedQuery))
        .mapError({ dataError -> ArticleListError in
          .fetchError(dataError)
        })
        .flatMap(dataToArticleList)
        .eraseToAnyPublisher()
    }