NowAPIService Interface : Android
L’interface NowAPIService offre la possibilité d’effectuer des demandes sur une API REST spécifiée ServiceNow .
Remarque :
Les utilisateurs invités ne fonctionnent pour l’interface NowAPIService que si l’API REST accessible est configurée pour les utilisateurs invités.
| Nom | Type | Description |
|---|---|---|
| configuration | NowServiceConfiguration | Configuration de service à associer au protocole. |
NowAPIService : data(endpoint : NowAPIService.Endpoint, queryParams : QueryParams, en-têtes : en-têtes, corps : chaîne)
Appelle l’API REST spécifiée sur l’instance spécifiée ServiceNow .
| Nom | Type | Description |
|---|---|---|
| point de terminaison | NowAPIService.Endpoint | Point de terminaison REST à appeler. |
| queryParams | Paramètres de requête | Facultatif. Objet de paramètre de requête qui contient les paramètres de requête à transmettre dans l’appel REST. Valeur par défaut : nul |
| en-têtes | En-têtes | Facultatif. En-têtes : objet contenant les en-têtes à transmettre dans l’appel REST. Valeur par défaut : nul |
| body | Chaîne | Facultatif. Objet contenant le corps et le type de contenu de la demande à transmettre à l’appel REST. Valeur par défaut : nul |
| Type | Description |
|---|---|
| Appel<ByteArray> | Renvoyer les résultats du point de terminaison REST appelé. |
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")
}
}