---
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 NowAPIService : iOS

# Classe NowAPIService : iOS {#ariaid-title1}

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

La classe NowAPIService fournit des fonctions qui vous permettent d'effectuer des demandes pour une API REST spécifiée ServiceNow .
{#NowAPIServiceiOSAPI__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.") | Configuration du service à associer au protocole. |
[Tableau 1. Propriétés]

{#NowAPIServiceiOSAPI__table_vx2_klw_5pb}

## NowAPIService -- data(for endpoint : NowAPIEndpoint, queryItems : \[String : String\], httpHeaders : \[String : String\], body : Data, completeion : @escaping (Result\<DataResponse, NowDataError\>) {#ariaid-title2}

Demande des données de l'API REST spécifiée ServiceNow , puis exécute le gestionnaire de complétion.
{#NAPIiOS-data_O_A_A_S_O__table_jck_kyp_5pb__entry__3}{#NAPIiOS-data_O_A_A_S_O__mobilesdkiOS-completion_data_dataerror-row}

| Nom | Type | Description |
|-|-|-|
| pour le point de terminaison | [NowAPIEndpoint](https://servicenow-prod.fluidtopics.net/9Z41tfRdlbAVoR5jxyOXgQ#NowAPIEndpointiOSProtocol "Le protocole NowAPIEndpoint fournit une interface permettant d’accéder à toutes les API REST exposées ServiceNow publiquement.") | Objet contenant le point de terminaison de l'API ServiceNow REST auquel accéder, y compris la méthode HTTP, le chemin relatif au point de terminaison, les paramètres du chemin d'accès et si une authentification est requise. |
| éléments requeryItems | Tableau | Facultatif. Interroger les paramètres du point de terminaison sous forme de paires clé/valeur. Par défaut : nul |
| En-têtes de http | Tableau | Facultatif. Demander les en-têtes HTTP requis par le point de terminaison en tant que paires clé/valeur. Par défaut : nul |
| body | Chaîne | Facultatif. Paramètres du corps de la demande. Par défaut : nul |
| achèvement | @escaping (Result\<DataResponse, NowDataError\>) | Gestionnaire de complétion à exécuter une fois l'appel d'API REST terminé. Valeurs de retour pour le gestionnaire de complétion : * Réussite : DataResponse qui contient les données renvoyées par l'appel d'API REST. * Échec : NowDataError * `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. {#NAPIiOS-data_O_A_A_S_O__NowDataErroriOS-ul-enum} {#NAPIiOS-data_O_A_A_S_O__ul_uzx_thj_ppb} |
[Tableau 2. Paramètres]

{#NAPIiOS-data_O_A_A_S_O__table_jck_kyp_5pb} {#NAPIiOS-data_O_A_A_S_O__table_kck_kyp_5pb__entry__2}

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

{#NAPIiOS-data_O_A_A_S_O__table_kck_kyp_5pb}  
L'exemple de code suivant montre comment appeler cette fonction.

    struct Endpoint: NowAPIEndpoint {
      let httpMethod: HTTPMethod
      let relativePath: String
      let requiresAuthentication: Bool
    }

    /// HTTP request method
    public enum HTTPMethod: CaseIterable {
        case options, get, head, post, put, patch, delete, trace, connect
    }
    let relativePath = "/api/now/account"
    let endPoint = Endpoint(httpMethod: HTTPMethod.get, relativePath: relativePath, requiresAuthentication: true)

    apiService.data(for: endPoint, queryItems: ["name": "abel"], httpHeaders: httpHeaders, body: body.data(using: .utf8)) { [weak self] (result) in
      switch result {
        case .success(let response):
        // Data request successful
        case .failure(let error):
        // Data request failed, return NowDataError
        // .failure(error)
      }
    }

## NowAPIService : données (pour le point de terminaison : NowAPIEndpoint, queryItems : \[String : String\], httpHeaders : \[String : String\], body : Data) Levages asynchrones {#ariaid-title3}

Demande des données à partir de l'API REST spécifiée ServiceNow .
{#NAPIiOS-data-async_O_A_A_S_O__table_jck_kyp_5pb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour le point de terminaison | [NowAPIEndpoint](https://servicenow-prod.fluidtopics.net/9Z41tfRdlbAVoR5jxyOXgQ#NowAPIEndpointiOSProtocol "Le protocole NowAPIEndpoint fournit une interface permettant d’accéder à toutes les API REST exposées ServiceNow publiquement.") | Objet contenant le point de terminaison de l'API ServiceNow REST poury accéder, y compris la méthode HTTP, le chemin d'accès relatif au point de terminaison, les paramètres du chemin d'accès et si une authentification est requise. |
| éléments requeryItems | Tableau | Facultatif. Interroger les paramètres du point de terminaison sous forme de paires clé/valeur. Par défaut : nul |
| En-têtes de http | Tableau | Facultatif. Demander les en-têtes HTTP requis par le point de terminaison en tant que paires clé/valeur. Par défaut : nul |
| body | Chaîne | Facultatif. Demander body parameters. Par défaut : nul |
[Tableau 4. Paramètres]

{#NAPIiOS-data-async_O_A_A_S_O__table_jck_kyp_5pb} {#NAPIiOS-data-async_O_A_A_S_O__table_kck_kyp_5pb__entry__2}

| Type | Description |
|-|-|
| Réponse de données | Renvoyé lorsque la méthode réussit. Données issues de l'appel d'API REST. |
| 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. {#NAPIiOS-data-async_O_A_A_S_O__NowDataErroriOS-ul-enum} |
[Tableau 5. Renvoie]

{#NAPIiOS-data-async_O_A_A_S_O__table_kck_kyp_5pb}  
Les exemples de code suivants montrent comment appeler cette méthode.

    do {
        let dataResponse = try await apiService.data(for: endpoint, queryItems: queryItems, httpHeaders: httpHeaders, body: body)
        // Data request successful
    } catch {
        // Data request failed, NowDataError thrown
    }

## NowAPIService -- data(for endpoint : NowAPIEndpoint, queryItems : \[String : String\] ? = nil, httpHeaders : \[String : String\] ? = nil, body : Data ? = nil) {#ariaid-title4}

Demande des données à partir de l'API REST spécifiée ServiceNow .
Remarque :  
Cette méthode a été déconseillée. Vous devez utiliser l'implémentation async/await de la méthode à la place.
{#NAPIiOS-data_O_A_A_S__table_sfb_5tp_5pb__entry__3}

| Nom | Type | Description |
|-|-|-|
| pour le point de terminaison | [NowAPIEndpoint](https://servicenow-prod.fluidtopics.net/9Z41tfRdlbAVoR5jxyOXgQ#NowAPIEndpointiOSProtocol "Le protocole NowAPIEndpoint fournit une interface permettant d’accéder à toutes les API REST exposées ServiceNow publiquement.") | Objet contenant le point de terminaison de l'API ServiceNow REST auquel accéder, y compris la méthode HTTP, le chemin relatif au point de terminaison, les paramètres du chemin d'accès et si une authentification est requise. |
| éléments requeryItems | Tableau | Facultatif. Interroger les paramètres du point de terminaison sous forme de paires clé/valeur. Par défaut : nul |
| En-têtes de http | Tableau | Facultatif. Demander les en-têtes HTTP requis par le point de terminaison en tant que paires clé/valeur. Par défaut : nul |
| body | Données | Facultatif. Paramètres du corps de la demande. Par défaut : nul |
[Tableau 6. Paramètres]

{#NAPIiOS-data_O_A_A_S__table_sfb_5tp_5pb} {#NAPIiOS-data_O_A_A_S__table_tfb_5tp_5pb__entry__2}

| Type | Description |
|-|-|
| AnyPublisher\<DataResponse, NowDataError\> | Réussite : données retournées par l'API REST. Échec : NowDataError * `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. {#NAPIiOS-data_O_A_A_S__NowDataErroriOS-ul-enum} |
[Tableau 7. Renvoie]

{#NAPIiOS-data_O_A_A_S__table_tfb_5tp_5pb}  
L'exemple de code suivant montre comment appeler cette fonction.

    struct Endpoint: NowAPIEndpoint {
        let httpMethod: HTTPMethod
        let relativePath: String
        let requiresAuthentication: Bool
    }

    /// HTTP request method
    public enum HTTPMethod: CaseIterable {
        case options, get, head, post, put, patch, delete, trace, connect
    }
    let relativePath = "/api/now/account"
    let endPoint = Endpoint(httpMethod: HTTPMethod.get, relativePath: relativePath, requiresAuthentication: true)

    // Using Combine
    apiService.data(for: Endpoint(httpMethod: httpMethod, relativePath: endpointPath, requiresAuthentication: requiresAuthentication), queryItems: queryItems, httpHeaders: httpHeaders, body: body.data(using: .utf8))
      .receive(on: DispatchQueue.main)
      .sink { [weak self] (comp) in
        if case let .failure(error) = comp {
          // Data request failed, return NowDataError
        }
      } receiveValue: { [weak self] (response) in
        // Data request successful
        self?.publish(data: response.data)
      }
      .store(in: &self.subscriptions)
    }


