NowGraphQLService-Klasse – iOS
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.
| Name | Typ | Beschreibung |
|---|---|---|
| konfigurieren | NowServiceKonfiguration | Konfigurationseinstellungen, die bei der Initialisierung des Service angegeben wurden. |
NowGraphQLService: asynchrone Würfe von execute(query: GraphQLQuery).
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, Abschluss: @escaping (Ergebnis<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 | 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.
| 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()
}