NowGraphQLService-Klasse – iOS

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Die NowGraphQLService -Klasse bietet Funktionen, mit denen Sie Anforderungen mit GraphQL-Abfragen für Daten in Ihrer Instanz ServiceNow über die GraphQL- REST-API stellen können.

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

    NowGraphQLService – execute(query: GraphQLQuery) async löst aus

    Führt die angegebene GraphQL-Abfrage aus.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    query Zeichenfolge Auszuführende GraphQL-Abfrage.
    Tabelle : 3. Ergebnisse
    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 Zugriffstokenanbieters.
        • accessTokenRetrievalFailed
        • userSessionError (_ Fehler: Fehler)

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

    • AnhangValidierung

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

    • schlechteAntwort (statusCode: HTTPStatusCode)
      • HTTPStatusCode: Statuscode von der Instanz empfangen.

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

    • kann nichtDecodeModel(DecodingError)
      • 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, um aus einer Zeichenfolge zu decodieren.
      • from: Zeichenfolge, die in den angegebenen Typ decodiert werden soll.

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

    • kann nichtEncodeModel(EncodingError)
      • EncodingError: Codierungsfehler erkannt.

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

    • kann nichtParseResponse

      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 gebildet werden kann. Zum Beispiel, wenn die Zeichenfolge Zeichen enthält, die in einer URL unzulässig sind, oder eine leere Zeichenfolge ist.

    • fehlendeAttachmentMetadata

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

    • fehltServiceConfiguration

      Wird ausgelöst, wenn eine erwartete Servicekonfiguration fehlt.

    • fehlendeSysID

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

    • network (NetworkServiceError)
      • genericError(Zeichenfolge)
      • Vorgang abgebrochen
      • 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, abgeschlossen: @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 (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. Ergebnisse
    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 NowServiceConfiguration Konfigurationsparameter, die beim Initialisieren des Service verwendet werden sollen, z. B. die Bundle-ID der in den Service integrierten Anwendung und die URL der ServiceNow -Instanz, auf die der NowGraphQLService zugreifen möchte.
    coreServiceProvider NowCoreServiceProvider Optional. Zentraler Service Provider.
    Hinweis:
    Derzeit ist dieser Parameter erforderlich, obwohl er als optional angezeigt wird.

    Standard: nil

    NowGraphQLService – Publisher(for query: GraphQLQuery)

    Erstellt einen Herausgeber, um GraphQL-Daten anzufordern.

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