NowAPIService-Klasse – iOS
Die Klasse NowAPIService stellt Funktionen bereit, mit denen Sie Anforderungen an eine angegebene ServiceNow -REST-API durchführen können.
| Name | Typ | Beschreibung |
|---|---|---|
| konfigurieren | NowServiceKonfiguration | Servicekonfiguration, die dem Protokoll zugeordnet werden soll. |
NowAPIService – data(für Endpunkt: NowAPIEndpoint, Abfrageelemente: [Zeichenfolge: Zeichenfolge], httpHeaders: [Zeichenfolge: Zeichenfolge], Textkörper: Daten, Abschluss: @escaping (Ergebnis<DataResponse, NowDataError> )
Fordert Daten von der angegebenen ServiceNow -REST-API an und führt dann den Abschluss-Handler aus.
| Name | Typ | Beschreibung |
|---|---|---|
| für Endpunkt | NowAPIEndpoint | Objekt, das den ServiceNow REST-API-Endpunkt für den Zugriff enthält, einschließlich HTTP-Methode, relativer Pfad zum Endpunkt, Pfadparameter und Angabe, ob eine Authentifizierung erforderlich ist. |
| Abfrageelemente | Array | Optional. Abfrageparameter für den Endpunkt als Schlüssel-Wert-Paare. Standard: null |
| httpHeaders | Array | Optional. HTTP-Header der Anforderung, die vom Endpunkt als Schlüssel-Wert-Paare benötigt werden. Standard: null |
| body | Zeichenfolge | Optional. Parameter des Anforderungstexts. Standard: null |
| Abschluss | @escaping (Ergebnis<DataResponse, NowDataError> ) | Abschluss-Handler, der nach Abschluss des REST-API-Aufrufs ausgeführt werden soll. Rückgabewerte für den Abschluss-Handler:
|
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
struct Endpoint: NowAPIEndpoint {
let httpMethod: HTTPMethod
let relativePath: String
let requiresAuthentication: Bool
}
/// HTTP request method
public enum HTTPMethod: CaseIterable {
case options, get, head, post, put, patch, delete, trace, connect
}
let relativePath = “/api/now/account”
let endPoint = Endpoint(httpMethod: HTTPMethod.get, relativePath: relativePath, requiresAuthentication: true)
apiService.data(for: endPoint, queryItems: [“name”: “abel”], httpHeaders: httpHeaders, body: body.data(using: .utf8)) { [weak self] (result) in
switch result {
case .success(let response):
// Data request successful
case .failure(let error):
// Data request failed, return NowDataError
// .failure(error)
}
}
NowAPIService – Daten (für Endpunkt: NowAPIEndpoint, Abfrageelemente: [Zeichenfolge: Zeichenfolge], httpHeaders: [Zeichenfolge: Zeichenfolge], Textkörper: Daten) lösen asynchrone Aktionen aus
Fordert Daten von der angegebenen ServiceNow REST API an.
| Name | Typ | Beschreibung |
|---|---|---|
| für Endpunkt | NowAPIEndpoint | Objekt mit dem Zugriff auf den ServiceNow REST-API-Endpunkt für, einschließlich HTTP-Methode, relativer Pfad zum Endpunkt, Pfadparameter und Angabe, ob eine Authentifizierung erforderlich ist. |
| Abfrageelemente | Array | Optional. Abfrageparameter für den Endpunkt als Schlüssel-Wert-Paare. Standard: null |
| httpHeaders | Array | Optional. Für den Endpunkt erforderliche HTTP-Header als Schlüssel-Wert-Paareanfordern. Standard: null |
| body | Zeichenfolge | Optional. Anforderungstexty Parameterrs. Standard: null |
| Typ | Beschreibung |
|---|---|
| DataResponse | Wird zurückgegeben, wenn die Methode erfolgreich ist. Daten aus dem REST-API-Aufruf |
| NowDataError | Wird ausgelöst, wenn die Methode fehlschlägt.
|
Die folgenden Codebeispiele zeigen, wie diese Methode aufgerufen wird.
do {
let dataResponse = try await apiService.data(for: endpoint, queryItems: queryItems, httpHeaders: httpHeaders, body: body)
// Data request successful
} catch {
// Data request failed, NowDataError thrown
}
NowAPIService – data(für Endpunkt: NowAPIEndpoint, Abfrageelemente: [Zeichenfolge: Zeichenfolge]? = Null, httpHeaders: [Zeichenfolge: Zeichenfolge]? = Null, Textkörper: Daten? = Null)
Fordert Daten von der angegebenen ServiceNow REST API an.
| Name | Typ | Beschreibung |
|---|---|---|
| für Endpunkt | NowAPIEndpoint | Objekt, das den ServiceNow REST-API-Endpunkt für den Zugriff enthält, einschließlich HTTP-Methode, relativer Pfad zum Endpunkt, Pfadparameter und Angabe, ob eine Authentifizierung erforderlich ist. |
| Abfrageelemente | Array | Optional. Abfrageparameter für den Endpunkt als Schlüssel-Wert-Paare. Standard: null |
| httpHeaders | Array | Optional. HTTP-Header der Anforderung, die vom Endpunkt als Schlüssel-Wert-Paare benötigt werden. Standard: null |
| body | Daten | Optional. Parameter des Anforderungstexts. Standard: null |
| Typ | Beschreibung |
|---|---|
| Beliebiger Herausgeber<DataResponse, NowDataError> | Erfolg: Von der REST-API zurückgegebene Daten. Fehler: NowDataError
|
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
struct Endpoint: NowAPIEndpoint {
let httpMethod: HTTPMethod
let relativePath: String
let requiresAuthentication: Bool
}
/// HTTP request method
public enum HTTPMethod: CaseIterable {
case options, get, head, post, put, patch, delete, trace, connect
}
let relativePath = "/api/now/account"
let endPoint = Endpoint(httpMethod: HTTPMethod.get, relativePath: relativePath, requiresAuthentication: true)
// Using Combine
apiService.data(for: Endpoint(httpMethod: httpMethod, relativePath: endpointPath, requiresAuthentication: requiresAuthentication), queryItems: queryItems, httpHeaders: httpHeaders, body: body.data(using: .utf8))
.receive(on: DispatchQueue.main)
.sink { [weak self] (comp) in
if case let .failure(error) = comp {
// Data request failed, return NowDataError
}
} receiveValue: { [weak self] (response) in
// Data request successful
self?.publish(data: response.data)
}
.store(in: &self.subscriptions)
}