NowGraphQLService-Klasse – iOS

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 3 Minuten Lesedauer
  • Die NowGraphQLService Die Klasse bietet Funktionen, mit denen Sie Anforderungen mithilfe von GraphQL-Abfragen für Daten auf Ihrem stellen können ServiceNow Instanz über ITS GraphQL REST-API.

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

    NowGraphQLService: Asynchrone Auslöse 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.
    • AccessToken(AccessTokenProviderError)
      • AccessTokenProviderError: Fehlercode oder Meldung des Zugriffstoken-Providers.
        • AccessTokenRetrievalFehlgeschlagen
        • UserSessionError(_ Fehler: Fehler)

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

    • 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

    • CannotDecodeModel(DecodingError)
      • DecodingError: Decodierungsfehler erkannt.

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

    • CannotDecodeProperty(Typ: Beliebig, von: Zeichenfolge)
      • type: Umschlossener Typ zum Decodieren aus einer Zeichenfolge.
      • from: Zeichenfolge, die für den angegebenen Typ decodiert werden soll.

      Wird ausgelöst, wenn ein in Zeichenfolge umschlossener Wert nicht aus JSON decodiert werden kann.

    • CannotEncodeModel(EncodingError)
      • EncodingError: Codierungsfehler erkannt.

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

    • CannotParseResponse

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

    • Ungültige URL

      Wird ausgelöst, wenn eine URL nicht erstellt werden kann. Beispiel: Wenn die Zeichenfolge Zeichen enthält, die in einer URL ungültig sind oder eine leere Zeichenfolge ist.

    • MissingAttachmentMetadata

      Wird ausgelöst, wenn der Header der Metadaten des Anhangs fehlt.

    • FehlingServiceConfiguration

      Wird ausgelöst, wenn eine erwartete Servicekonfiguration fehlt.

    • FehlingSysID

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

    • Netzwerk (NetzwerkServiceError)
      • GenericError(Zeichenfolge)
      • Operativ abgebrochen
      • Service​deaktiviert
      • ServerError (Fehler)
      • Systemfehler (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 (Result<Data, NowDataError>))

    Führt die angegebene GraphQL-Abfrage aus.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Auszuführende GraphQL-Abfrage.
    Abschluss @Escaping (Result<Data, NowDataError>) Abschlusshandler, 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(Konfiguration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding)

    Erstellt einen NowGraphQLService basierend auf den angegebenen Parametern.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    konfigurieren NowServiceConfiguration Konfigurationsparameter, die bei der Initialisierung des Service verwendet werden sollen, z. B. die Paket-ID der Anwendung, die in den Service integriert wird, und die URL des ServiceNow Instanz, auf die der NowGraphQLService zugreifen möchte.
    CoreServiceProvider Now CoreServiceProviding Optional. Core-Service Provider.
    Hinweis:
    Derzeit ist dieser Parameter erforderlich, auch wenn er als optional angezeigt wird.

    Standard: Nil

    NowGraphQLService – Herausgeber (für Abfrage: GraphQLQuery)

    Erstellt einen Herausgeber, um GraphQL-Daten anzufordern.

    Hinweis:
    Diese Methode ist veraltet. Sie sollten stattdessen die asynchrone/wartet-Implementierung der Methode verwenden.
    Tabelle : 7. Parameter
    Name Typ Beschreibung
    Für Abfrage GraphQLQuery Auszuführende GraphQL-Abfragezeichenfolge.
    Tabelle : 8. Rückgaben
    Typ Beschreibung
    AnyPublisher<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()
    }