Classe NowGraphQLService : iOS
La classe NowGraphQLService fournit des fonctions qui vous permettent d’effectuer des requêtes à l’aide de requêtes GraphQL sur les données de votre ServiceNow instance via son API REST GraphQL .
| Nom | Type | Description |
|---|---|---|
| configuration | Configuration Now ServiceConfiguration | Paramètres de configuration fournis lors de l’initialisation du service. |
NowGraphQLService - execute(query : GraphQLQuery) lève une fonction asynchrone
Exécute la requête GraphQL spécifiée.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Requête GraphQL à exécuter. |
| Type | Description |
|---|---|
| Données | Renvoyé lorsque la méthode réussit. Données de requête générées à partir de la requête spécifiée. |
| Erreur NowDataError | Levée lorsque la méthode échoue.
|
L’exemple de code suivant montre comment appeler cette méthode.
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, completion : @escaping (Result<Data, NowDataError>))
Exécute la requête GraphQL spécifiée.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Requête GraphQL à exécuter. |
| Achèvement | @escaping (Résultat<données, NowDataError>) | Gestionnaire de complétion à exécuter une fois la requête terminée. Valeurs de retour :
|
| Type | Description |
|---|---|
| Néant |
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 : NowCoreServiceProviding)
Crée un service NowGraphQLS basé sur les paramètres spécifiés.
| Nom | Type | Description |
|---|---|---|
| configuration | Configuration Now ServiceConfiguration | Paramètres de configuration à utiliser lors de l’initialisation du service, tels que l’ID de groupe de l’application qui s’intègre au service et l’URL de l’instance ServiceNow à laquelle le service NowGraphQLS souhaite accéder. |
| coreServiceProvider | NowCoreServiceProviding | Facultatif. Fournisseur de service principal. Remarque : Actuellement, ce paramètre est requis, même s’il est affiché comme facultatif. Valeur par défaut : nulle |
NowGraphQLService – éditeur (pour la requête : GraphQLQuery)
Crée un éditeur pour demander des données GraphQL.
| Nom | Type | Description |
|---|---|---|
| pour la requête | GraphQLQuery | Chaîne de requête GraphQL à exécuter. |
| Type | Description |
|---|---|
| AnyPublisher<Data, NowDataError> | Réussite : ensemble de données GraphQL. Échec : NowDataError |
L’exemple de code suivant montre comment appeler cette fonction.
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()
}