---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# Classe NowAPIService - iOS

# Classe NowAPIService - iOS {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 6 min. de leitura

A classe NowAPIService fornece funções que permitem executar solicitações para uma ServiceNow REST API especificada.
{#NowAPIServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| configuração | [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/flpam5S9jLear5y_v4eXdA#NowServiceConfigurationiOSStruct "A estrutura NowServiceConfiguration define informações de configuração para um serviço da feição.") | Configuração de serviço a ser associada ao protocolo. |
[Tabela 1. Propriedades]

{#NowAPIServiceiOSAPI__table_vx2_klw_5pb}

## NowAPIService - dados (para endpoint: NowAPIEndpoint, queryItems: \[String: String\], httpHeaders: \[String: String\], corpo: Dados, conclusão: @escaping (Resultado\<DataResponse, NowDataError\> ) {#ariaid-title2}

Solicita dados da ServiceNow REST API especificada e executa o manipulador de conclusão.
{#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}

| Nome | Tipo | Descrição |
|-|-|-|
| para endpoint | [NowAPIEndpoint](https://servicenow-prod.fluidtopics.net/3yvvXVC4tBbvfk9qc8a_xA#NowAPIEndpointiOSProtocol "O protocolo NowAPIEndpoint fornece uma interface para acessar quaisquer REST APIs ServiceNow expostas publicamente.") | Objeto que contém o ServiceNow endpoint de REST API a ser acessado, incluindo o método HTTP, caminho relativo para o endpoint, parâmetros de caminho e se a autenticação é necessária. |
| queryItems | Matriz | Opcional. Parâmetros de consulta para o endpoint como pares de chave/valor. Padrão: nulo |
| httpCabeçalhos | Matriz | Opcional. Solicite cabeçalhos HTTP exigidos pelo endpoint como pares de chave/valor. Padrão: nulo |
| corpo | Cadeia de caracteres | Opcional. Parâmetros do corpo da solicitação. Padrão: nulo |
| conclusão | @escaping (resultado\<DataResponse, NowDataError\> ) | Manipulador de conclusão a ser executado após a conclusão da chamada de REST API. Valores de retorno para o manipulador de conclusão: * Sucesso: DataResponse que contém os dados retornados da chamada de REST API. * Falha: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: o código ou a mensagem de erro do provedor de token de acesso. * accessTokenRetrievalFailed * userSessionError(_ erro: Erro) Lançado quando há um erro no token de acesso. * `attachmentValidation` Lançado quando um anexo falha na validação. * `BadResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: Código de status recebido da instância. Lançado quando uma solicitação retorna uma resposta inesperada * `canDecodeModel(DecodingError)` * DecodingError: erro de decodificação detectado. Lançado quando um modelo Codable não pode ser decodificado do JSON. * `canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)` * type: tipo encapsulado para decodificar a partir de uma cadeia de caracteres. * from: cadeia de caracteres a ser decodificada para o tipo especificado. Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON. * `can'tEncodeModel(EncodingError)` * EncodingError: erro de codificação detectado. Lançado quando um modelo Codable não pode ser codificado para JSON. * `canParseResponse` Lançado quando uma resposta da instância não pode ser analisada no formato esperado. * `URL inválido` Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia. * `ausenteAttachmentMetadata` Lançado quando o cabeçalho de metadados do anexo está ausente. * `ausenteConfiguraçãoDeServiço` Lançado quando uma configuração de serviço esperada está ausente. * `ausenteSysID` Lançado quando um parâmetro sys_id esperado está ausente. * `network(NetworkServiceError)` * genericError(cadeia de caracteres) * operaçãoCancelada * serviçoDesabilitado * serverError(Erro) * systemError (Erro) Lançado quando um serviço de rede encontrou um erro. {#NAPIiOS-data_O_A_A_S_O__NowDataErroriOS-ul-enum} {#NAPIiOS-data_O_A_A_S_O__ul_uzx_thj_ppb} |
[Tabela 2. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 3. Retorna]

{#NAPIiOS-data_O_A_A_S_O__table_kck_kyp_5pb}  
O exemplo de código a seguir mostra como chamar essa função.

    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 - dados (para endpoint: NowAPIEndpoint, queryItems: \[String: String\], httpHeaders: \[String: String\], corpo: Data) lançamentos assíncronos {#ariaid-title3}

Solicita dados da ServiceNow REST API especificada.
{#NAPIiOS-data-async_O_A_A_S_O__table_jck_kyp_5pb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| para endpoint | [NowAPIEndpoint](https://servicenow-prod.fluidtopics.net/3yvvXVC4tBbvfk9qc8a_xA#NowAPIEndpointiOSProtocol "O protocolo NowAPIEndpoint fornece uma interface para acessar quaisquer REST APIs ServiceNow expostas publicamente.") | Objeto que contém o ServiceNow endpoint de REST API parao acesso, incluindo o método HTTP, caminho relativo para o endpoint, parâmetros de caminho e se a autenticação é necessária. |
| queryItems | Matriz | Opcional. Parâmetros de consulta para o endpoint como pares de chave/valor. Padrão: nulo |
| httpCabeçalhos | Matriz | Opcional. Solicite cabeçalhos HTTP exigidos pelo endpoint como pares de chave/valor. Padrão: nulo |
| corpo | Cadeia de caracteres | Opcional. Solicitar body parâmetrors. Padrão: nulo |
[Tabela 4. Parâmetros]

{#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}

| Tipo | Descrição |
|-|-|
| Resposta de dados | Retornado quando o método é bem-sucedido. Dados da chamada de REST API. |
| NowDataError | Lançado quando o método falha. * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: o código ou a mensagem de erro do provedor de token de acesso. * accessTokenRetrievalFailed * userSessionError(_ erro: Erro) Lançado quando há um erro no token de acesso. * `attachmentValidation` Lançado quando um anexo falha na validação. * `BadResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: Código de status recebido da instância. Lançado quando uma solicitação retorna uma resposta inesperada * `canDecodeModel(DecodingError)` * DecodingError: erro de decodificação detectado. Lançado quando um modelo Codable não pode ser decodificado do JSON. * `canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)` * type: tipo encapsulado para decodificar a partir de uma cadeia de caracteres. * from: cadeia de caracteres a ser decodificada para o tipo especificado. Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON. * `can'tEncodeModel(EncodingError)` * EncodingError: erro de codificação detectado. Lançado quando um modelo Codable não pode ser codificado para JSON. * `canParseResponse` Lançado quando uma resposta da instância não pode ser analisada no formato esperado. * `URL inválido` Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia. * `ausenteAttachmentMetadata` Lançado quando o cabeçalho de metadados do anexo está ausente. * `ausenteConfiguraçãoDeServiço` Lançado quando uma configuração de serviço esperada está ausente. * `ausenteSysID` Lançado quando um parâmetro sys_id esperado está ausente. * `network(NetworkServiceError)` * genericError(cadeia de caracteres) * operaçãoCancelada * serviçoDesabilitado * serverError(Erro) * systemError (Erro) Lançado quando um serviço de rede encontrou um erro. {#NAPIiOS-data-async_O_A_A_S_O__NowDataErroriOS-ul-enum} |
[Tabela 5. Retorna]

{#NAPIiOS-data-async_O_A_A_S_O__table_kck_kyp_5pb}  
Os exemplos de código a seguir mostram como chamar este método.

    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 - dados (para endpoint: NowAPIEndpoint, queryItems: \[cadeia de caracteres: cadeia de caracteres\]? = nulo, httpHeaders: \[cadeia de caracteres: cadeia de caracteres\]? = nulo, corpo: dados? = nulo) {#ariaid-title4}

Solicita dados da ServiceNow REST API especificada.
Nota:  
Este método foi descontinuado. Em vez disso, você deve usar a implementação assíncrona/aguardar do método.
{#NAPIiOS-data_O_A_A_S__table_sfb_5tp_5pb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| para endpoint | [NowAPIEndpoint](https://servicenow-prod.fluidtopics.net/3yvvXVC4tBbvfk9qc8a_xA#NowAPIEndpointiOSProtocol "O protocolo NowAPIEndpoint fornece uma interface para acessar quaisquer REST APIs ServiceNow expostas publicamente.") | Objeto que contém o ServiceNow endpoint de REST API a ser acessado, incluindo o método HTTP, caminho relativo para o endpoint, parâmetros de caminho e se a autenticação é necessária. |
| queryItems | Matriz | Opcional. Parâmetros de consulta para o endpoint como pares de chave/valor. Padrão: nulo |
| httpCabeçalhos | Matriz | Opcional. Solicite cabeçalhos HTTP exigidos pelo endpoint como pares de chave/valor. Padrão: nulo |
| corpo | Dados | Opcional. Parâmetros do corpo da solicitação. Padrão: nulo |
[Tabela 6. Parâmetros]

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

| Tipo | Descrição |
|-|-|
| Qualquer publicador\<DataResponse, NowDataError\> | Sucesso: dados retornados pela REST API. Falha: NowDataError * `accessToken(AccessTokenProviderError)` * AccessTokenProviderError: o código ou a mensagem de erro do provedor de token de acesso. * accessTokenRetrievalFailed * userSessionError(_ erro: Erro) Lançado quando há um erro no token de acesso. * `attachmentValidation` Lançado quando um anexo falha na validação. * `BadResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode: Código de status recebido da instância. Lançado quando uma solicitação retorna uma resposta inesperada * `canDecodeModel(DecodingError)` * DecodingError: erro de decodificação detectado. Lançado quando um modelo Codable não pode ser decodificado do JSON. * `canDecodeProperty(tipo: qualquer, de: cadeia de caracteres)` * type: tipo encapsulado para decodificar a partir de uma cadeia de caracteres. * from: cadeia de caracteres a ser decodificada para o tipo especificado. Lançado quando um valor encapsulado em cadeia de caracteres não pode ser decodificado do JSON. * `can'tEncodeModel(EncodingError)` * EncodingError: erro de codificação detectado. Lançado quando um modelo Codable não pode ser codificado para JSON. * `canParseResponse` Lançado quando uma resposta da instância não pode ser analisada no formato esperado. * `URL inválido` Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres que são ilegais em um URL ou for uma cadeia de caracteres vazia. * `ausenteAttachmentMetadata` Lançado quando o cabeçalho de metadados do anexo está ausente. * `ausenteConfiguraçãoDeServiço` Lançado quando uma configuração de serviço esperada está ausente. * `ausenteSysID` Lançado quando um parâmetro sys_id esperado está ausente. * `network(NetworkServiceError)` * genericError(cadeia de caracteres) * operaçãoCancelada * serviçoDesabilitado * serverError(Erro) * systemError (Erro) Lançado quando um serviço de rede encontrou um erro. {#NAPIiOS-data_O_A_A_S__NowDataErroriOS-ul-enum} |
[Tabela 7. Retorna]

{#NAPIiOS-data_O_A_A_S__table_tfb_5tp_5pb}  
O exemplo de código a seguir mostra como chamar esta função.

    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)
    }


