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


---

# Interagir com a REST API pública em uma instância ServiceNow

# Interagir com a REST API pública em uma instância ServiceNow {#ariaid-title1}

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

O Mobile SDK fornece a funcionalidade que permite que aplicações Android chamem a REST API pública em uma instância ServiceNow.
Usando a API [NowAPIService](https://servicenow-prod.fluidtopics.net/L6HruwUIp6YUokLCsvDreA#NowAPIServiceAndroidInterface "A interface NowAPIService oferece a capacidade de executar solicitações em uma ServiceNow REST API especificada."), você pode interagir com qualquer uma das ServiceNow[REST APIs](https://servicenow-prod.fluidtopics.net/KUrnWnVCWERi2GuidUOsMg "Use interfaces REST para acessar dados em sua instância.")públicas de base ou criar REST APIs personalizadas na instância e chamá-las da sua aplicação Android.

Antes de fazer uma chamada para uma ServiceNow REST API, você deve chamar o método[makeNowAPIService()](https://servicenow-prod.fluidtopics.net/kUJs~JIHkmc1b_zPUR2chg#NDataSDK-makeNowAPIService_S_O_O "Cria e inicializa uma instância do serviço NowAPIService. Este serviço permite que você acesse as REST APIs públicas expostas por sua instância ServiceNow.") para criar uma instância do serviço. A instância de serviço será retornada no retorno de chamada se for bem-sucedida, caso contrário, será gerado um erro.  
Veja a seguir como inicializar um objeto NowAPIService:

    /**
     * Helper class used to handle different Now service instances. It has an application scope or is Singleton
     */
    @Singleton
    class SdkManager @Inject constructor() {

        private var nowApiService: NowAPIService? = null

        /**
         * Create the NowAPIService once in the lifetime of the application inside the Application class or another manager class
         * that will be injected into other classes via dagger/hilt.
         * NowAPIService should be created after initializing the NowSDK
         */
        suspend fun getNowApiService(): NowAPIService? {
            if (nowApiService != null) return nowApiService

            return NowDataSDK.makeAPIService(URL("https://instance-name.service-now.com")).getOrThrow()
                .also { this.nowApiService = it }
        }

    }

Depois que o objeto NowAPIService for inicializado, use o método NowAPIService [data()](https://servicenow-prod.fluidtopics.net/L6HruwUIp6YUokLCsvDreA#NAPIServ-data_S_S_S_S "Chama a REST API especificada na instância ServiceNow especificada.") para especificar o endpoint REST a ser chamado e todos os parâmetros associados:

     suspend fun makeNowApiCall() {
      val apiService = sdkManager.getNowApiService()

      val apiPath = "api/now/table/sn_customerservice_case"
      val endpoint = NowAPIService.Endpoint(HttpMethod.GET, apiPath, true)
      val fieldNames = "sys_id,number,short_description,number,priority,state," +
        "opened_at,account.name,account.number,contact.name,contact.email," +
        "contact_type,assignment_group.name,assigned_to.name"

      val queryParamsMap = mapOf("sysparm_fields" to fieldNames, "sysparm_limit" to "10")

      val queryParams = QueryParams.Builder().addAll(queryParamsMap).build()

      val response = runCatching {
        apiService?.data(endpoint = endpoint, queryParams = queryParams)?.execute()
      }

      if (response.isSuccess) {
        val resultString = response.getOrNull()?.body?.let { String(it) }
      } else {
        // Handle error
      }
    }


