NowAPIService インターフェイス - Android
NowAPIService インターフェイスは、指定された ServiceNow REST API で要求を実行する機能を提供します。
注:
ゲストユーザーは、アクセスされる REST API がゲストユーザー用に構成されている場合にのみ、 NowAPIService インターフェイスで機能します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 構成 | NowServiceConfiguration | プロトコルに関連付けるサービス構成。 |
NowAPIService - data(endpoint: NowAPIService.Endpoint, queryParams: QueryParams, headers: Headers, body: String)
指定された ServiceNow インスタンスで指定された REST API を呼び出します。
| 名前 | タイプ | 説明 |
|---|---|---|
| endpoint | NowAPIService.Endpoint | 呼び出す REST エンドポイント。 |
| queryParams | クエリパラメーター | オプション。REST 呼び出しで渡すクエリパラメーターを含むクエリパラメーターオブジェクト。 デフォルト:null |
| ヘッダー | ヘッダー | オプション。REST 呼び出しで渡すヘッダーを含むヘッダーオブジェクト。 デフォルト:null |
| 本文 | 文字列 | オプション。REST 呼び出しに渡す要求本文とコンテンツタイプを含むオブジェクト。 デフォルト:null |
| タイプ | 説明 |
|---|---|
| call<ByteArray> | 呼び出された REST エンドポイントから結果を返します。 |
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")
}
}