NowGraphQLService-Klasse – iOS
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.
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| query | Zeichenfolge | Auszuführende GraphQL-Abfrage. |
| 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.
|
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.
| 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:
|
| 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.
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| für Abfrage | GraphQLQuery | Auszuführende GraphQL-Abfragezeichenfolge. |
| 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()
}