NowAPIService 인터페이스 - Android
NowAPIService 인터페이스는 지정된 ServiceNow REST API에서 요청을 수행하는 기능을 제공합니다.
주:
게스트 사용자는 액세스 중인 REST API가 게스트 사용자에 대해 구성된 경우에만 NowAPIService 인터페이스에 대해 작동합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | NowServiceConfiguration | 프로토콜과 연결할 서비스 구성입니다. |
NowAPIService - 데이터(엔드포인트: NowAPIService.Endpoint, queryParams: QueryParams, 헤더: 헤더, 본문: 문자열)
지정된 ServiceNow 인스턴스에서 지정된 REST API를 호출합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| endpoint | NowAPIService.Endpoint | 호출할 REST 엔드포인트입니다. |
| queryParams | QueryParams (쿼리 매개변수) | 옵션입니다. REST 호출에서 전달할 쿼리 매개변수를 포함하는 쿼리 매개변수 객체입니다. 기본값: null |
| 헤더 | 헤더 | 옵션입니다. REST 호출에 전달할 헤더가 포함된 Headers 객체입니다. 기본값: null |
| 본문 | 문자열 | 옵션입니다. REST 호출에 전달할 요청 본문 및 콘텐츠 유형이 포함된 객체입니다. 기본값: null |
| 유형 | 설명 |
|---|---|
| 호출<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")
}
}