---
sourceDocument: Référence de l’API Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/fr-FR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - fr-FR

ft:publication_title :

    - Référence de l’API Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Classe NowGraphQLService : iOS

# Classe NowGraphQLService : iOS {#ariaid-title1}

* Rversion finale: Xanadu
* 
* Mis à jour 1 août 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes de lecture

La classe NowGraphQLService fournit des fonctions qui vous permettent d'effectuer des requêtes à l'aide de requêtes GraphQL sur des données de votre ServiceNow instance via son API REST GraphQL .
{#NowGraphQLServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| Nom | Type | Description |
|-|-|-|
| configuration | [Configuration Now ServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") | Paramètres de configuration fournis lors de l'initialisation du service. |
[Tableau 1. Propriétés]

{#NowGraphQLServiceiOSAPI__table_vx2_klw_5pb}

## NowGraphQLService : execute(query : GraphQLQuery) lèves asynchrones {#ariaid-title2}

Exécute la requête GraphQL spécifiée.
{#NGQLServ-execute-async_S__table_sfm_c4h_ppb__entry__3}

| Nom | Type | Description |
|-|-|-|
| requête | Chaîne | Requête GraphQL à exécuter. |
[Tableau 2. Paramètres]

{#NGQLServ-execute-async_S__table_sfm_c4h_ppb} {#NGQLServ-execute-async_S__table_tfm_c4h_ppb__entry__2}

| 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. |
| NowDataError (en anglais seulement) | Levée lorsque la méthode échoue. * `accessToken (AccessTokenProviderError)` * AccessTokenProviderError: code d'erreur ou message du fournisseur du jeton d'accès. * accessTokenRetrievalFailed * userSessionError(_ error : Erreur) Levée lorsqu'une erreur se produit dans le jeton d'accès. * `attachmentValidation` Levée lorsqu'une pièce jointe échoue à la validation. * `badResponse(statusCode : HTTPStatusCode)` * HTTPStatusCode: code d'état reçu de l'instance. Levée lorsqu'une demande renvoie une réponse inattendue * `cannotDecodeModel(DecodingError)` * DecodingError: erreur de décodage détectée. Levée lorsqu'un modèle codable ne peut pas être décodé à partir de JSON. * `cannotDecodeProperty(type : N'importe lequel, de : Chaîne)` * type: type enveloppé à décoder à partir d'une chaîne. * from: Chaîne à décoder vers le type spécifié. Levée lorsqu'une valeur enveloppée dans une chaîne ne peut pas être décodée à partir de JSON. * `cannotEncodeModel(EncodingError)` * EncodingError: Erreur d'encodage détectée. Levée lorsqu'un modèle codable ne peut pas être encodé en JSON. * `cannotParseResponse (en anglais seulement)` Levée lorsqu'une réponse de l'instance ne peut pas être analysée dans son format attendu. * `URL non valide` Levée lorsqu'une URL ne peut pas être formée. Par exemple, si la chaîne contient des caractères illégaux dans une URL ou est une chaîne vide. * `missingAttachmentMetadata` Levée lorsque l'en-tête des métadonnées de la pièce jointe est manquant. * `missingServiceConfiguration` Levée lorsqu'une configuration de service attendue est manquante. * `missingSysID` Levée lorsqu'un paramètre de sys_id attendu est manquant. * `réseau (NetworkServiceError)` * genericError(chaîne) * opérationannulée * serviceDisabled * serverError(Erreur) * systemError(Erreur) Levée lorsqu'un service réseau rencontre une erreur. {#NGQLServ-execute-async_S__NowDataErroriOS-ul-enum} |
[Tableau 3. Renvoie]

{#NGQLServ-execute-async_S__table_tfm_c4h_ppb}  
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\>)) {#ariaid-title3}

Exécute la requête GraphQL spécifiée.
{#NGQLServ-execute_S_O__table_sfm_c4h_ppb__entry__3}

| Nom | Type | Description |
|-|-|-|
| requête | Chaîne | Requête GraphQL à exécuter. |
| achèvement | @escaping (Result\<Data, NowDataError\>) | Gestionnaire de complétion à exécuter une fois la requête terminée. Valeurs de retour : * Réussite : renvoie les données de la requête. * Erreur : NowDataError {#NGQLServ-execute_S_O__ul_tst_1qh_ppb} |
[Tableau 4. Paramètres]

{#NGQLServ-execute_S_O__table_sfm_c4h_ppb} {#NGQLServ-execute_S_O__table_tfm_c4h_ppb__entry__2}

| Type | Description |
|-|-|
| Aucun |   |
[Tableau 5. Renvoie]

{#NGQLServ-execute_S_O__table_tfm_c4h_ppb}  
<br />

    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) {#ariaid-title4}

Crée un service NowGraphQLS en fonction des paramètres spécifiés.
{#NGQLServ-init_O_O__table_k4t_mnh_ppb__entry__3}

| Nom | Type | Description |
|-|-|-|
| configuration | [Configuration Now ServiceConfiguration](https://servicenow-prod.fluidtopics.net/V01HrOtfNsIM7_JMqFBMSg#NowServiceConfigurationiOSStruct "La structure NowServiceConfiguration définit les informations de configuration d’un service d’fonctionnalités.") | Paramètres de configuration à utiliser lors de l'initialisation du service, tels que l'ID de lot de l'application qui s'intègre au service et l'URL de l'instance ServiceNow à laquelle le service NowGraphQLS souhaite accéder. |
| coreServiceProvider (en anglais seulement) | NowCoreServiceProviding | Facultatif. Fournisseur de service principal. Remarque : Actuellement, ce paramètre est requis même s'il est affiché comme facultatif. Par défaut : nul |
[Tableau 6. Paramètres]

{#NGQLServ-init_O_O__table_k4t_mnh_ppb}  
<br />

```

```

## NowGraphQLService -- éditeur (pour la requête : GraphQLQuery) {#ariaid-title5}

Crée un éditeur pour demander des données GraphQL.
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NGQLServ-publisher_S__table_jsv_5wh_ppb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour la requête | GraphQLQuery | Chaîne de requête GraphQL à exécuter. |
[Tableau 7. Paramètres]

{#NGQLServ-publisher_S__table_jsv_5wh_ppb} {#NGQLServ-publisher_S__table_ksv_5wh_ppb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<Data, NowDataError\> | Réussite : ensemble de données GraphQL. Échec : NowDataError |
[Tableau 8. Renvoie]

{#NGQLServ-publisher_S__table_ksv_5wh_ppb}  
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()
    }


