Skip to content
Release: Australia · Updated: 2026-03-12 · Official documentation · View source

NowAPIService interface- Android

The NowAPIService interface provides the ability to perform requests on a specified ServiceNow REST API.

Note: Guest users only work for the NowAPIService interface if the REST API being accessed is configured for guest users.

NameTypeDescription
configurationNowServiceConfigurationService configuration to associate with the protocol.

Parent Topic:Mobile SDK - Android

NowAPIService - data(endpoint: NowAPIService.Endpoint, queryParams: QueryParams, headers: Headers, body: String)

Calls the specified REST API on the specified ServiceNow instance.

NameTypeDescription
endpointNowAPIService.EndpointREST endpoint to call.
queryParamsQueryParamsOptional. Query parameter object that contains the query parameters to pass in the REST call.Default: null
headersHeadersOptional. Headers object that contains the headers to pass in the REST call.Default: null
bodyStringOptional. Object that contains the request body and content type to pass into the REST call.Default: null
TypeDescription
Call<ByteArray>Return results from the called REST endpoint.
suspend fun loadCases(): List<CaseItem> = withContext(Dispatchers.IO) {
  val apiService = nowServiceManager.getNowAPIService()

  val result = runCatching {
    val response = apiService.data(NowAPIService.Endpoint(
      relativePath = CASES_API,
      requestMethod = HttpMethod.GET,
      requireAuth = true)
    ).execute()

    val byteArray = response.body ?: throw Exception("Null Result")
    val buffer = Buffer()
    val reader = JsonReader.of(buffer.write(byteArray))
    val listType = Types.newParameterizedType(
      List::class.java,
      CaseItem::class.java
    )

    val resultType = Types.newParameterizedType(
      ResultResponse::class.java,
      listType
    )
    val adapter = moshi.adapter<ResultResponse<List<CaseItem>>>(resultType)
    adapter.fromJson(reader)
  }

  if (result.isSuccess) {
      result.getOrNull()?.result ?: throw Exception("Cases not in response")
  } else {
      throw result.exceptionOrNull() ?: Exception("Error Cases")
  }
}