Interface NowAPIService - Android
A interface NowAPIService oferece a capacidade de executar solicitações em uma ServiceNow REST API especificada.
Nota:
Os usuários convidados só funcionarão para a interface NowAPIService se a REST API que está sendo acessada estiver configurada para usuários convidados.
| Nome | Tipo | Descrição |
|---|---|---|
| configuração | NowServiceConfiguration | Configuração de serviço a ser associada ao protocolo. |
NowAPIService - data(endpoint: NowAPIService.Endpoint, queryParams: QueryParams, cabeçalhos: cabeçalhos, corpo: cadeia de caracteres)
Chama a REST API especificada na instância ServiceNow especificada.
| Nome | Tipo | Descrição |
|---|---|---|
| endpoint | NowAPIService.Endpoint | Endpoint REST a ser chamado. |
| queryParams | QueryParams | Opcional. Objeto de parâmetro de consulta que contém os parâmetros de consulta a serem passados na chamada REST. Padrão: nulo |
| cabeçalhos | Cabeçalhos | Opcional. Objeto de cabeçalhos que contém os cabeçalhos a serem passados na chamada REST. Padrão: nulo |
| corpo | Cadeia de caracteres | Opcional. Objeto que contém o corpo da solicitação e o tipo de conteúdo a ser passado para a chamada REST. Padrão: nulo |
| Tipo | Descrição |
|---|---|
| Chamar<ByteArray> | Retornar resultados do endpoint REST chamado. |
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")
}
}