NowAPIService クラス - iOS
NowAPIService クラスは、指定された ServiceNow REST API への要求を実行できるようにする関数を提供します。
| 名前 | タイプ | 説明 |
|---|---|---|
| 構成 | NowServiceConfiguration | プロトコルに関連付けるサービス構成。 |
NowAPIService - data(エンドポイントの場合:NowAPIEndpoint、queryItems:[String:String]、httpHeaders:[String:String]、body:Data、completion:@escaping(Result<DataResponse、NowDataError>)
指定された ServiceNow REST API からデータを要求し、完了ハンドラーを実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| エンドポイント向け | NowAPI エンドポイント | HTTP メソッド、エンドポイントへの相対パス、パスパラメーター、認証が必要かどうかなど、アクセスする ServiceNow REST API エンドポイントを含むオブジェクト。 |
| クエリアイテム | アレイ | オプション。キーと値のペアとしてのエンドポイントのクエリパラメーター。 デフォルト:nil |
| httpHeader | アレイ | オプション。エンドポイントに必要な HTTP ヘッダーをキーと値のペアとして要求します。 デフォルト:nil |
| 本文 | 文字列 | オプション。要求本文のパラメーター。 デフォルト:nil |
| 完了 | @escaping (Result<DataResponse, NowDataError>) | REST API コールが完了した後に実行する補完ハンドラー。 補完ハンドラーの戻り値:
|
| タイプ | 説明 |
|---|---|
| なし |
次のコード例は、この関数を呼び出す方法を示しています。
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 - data(エンドポイントの場合:NowAPIEndpoint、queryItems:[String:String]、httpHeaders:[String:String]、body:Data) 非同期がスローします
指定された ServiceNow REST API からデータを要求します。
| 名前 | タイプ | 説明 |
|---|---|---|
| エンドポイント向け | NowAPI エンドポイント | HTTP メソッド、エンドポイントへの相対パス、パスパラメーター、および認証が必要かどうかなど、アクセスする ServiceNow REST API エンドポイントを含むオブジェクト |
| クエリアイテム | アレイ | オプション。キーと値のペアとしてのエンドポイントのクエリパラメーター デフォルト:nil |
| httpHeader | アレイ | オプション。エンドポイントで必要な HTTP ヘッダーを キー/値のペアとして要求します。 デフォルト:nil |
| 本文 | 文字列 | オプション。body parameters を要求します。 デフォルト:nil |
| タイプ | 説明 |
|---|---|
| データ応答 | メソッドが成功したときに返されます。REST API 呼び出しからのデータ。 |
| NowDataError | メソッドが失敗したときにスローされます。
|
次のコード例は、このメソッドを呼び出す方法を示しています。
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(エンドポイントの場合:NowAPIEndpoint、queryItems:[String:String]? = nil、httpHeaders:[String:String]? = nil、body:データ? = nil)
指定された ServiceNow REST API からデータを要求します。
| 名前 | タイプ | 説明 |
|---|---|---|
| エンドポイント向け | NowAPI エンドポイント | HTTP メソッド、エンドポイントへの相対パス、パスパラメーター、認証が必要かどうかなど、アクセスする ServiceNow REST API エンドポイントを含むオブジェクト。 |
| クエリアイテム | アレイ | オプション。キーと値のペアとしてのエンドポイントのクエリパラメーター。 デフォルト:nil |
| httpHeader | アレイ | オプション。エンドポイントに必要な HTTP ヘッダーをキーと値のペアとして要求します。 デフォルト:nil |
| 本文 | データ | オプション。要求本文のパラメーター。 デフォルト:nil |
| タイプ | 説明 |
|---|---|
| AnyPublisher<DataResponse、NowDataError> | 成功:REST API によって返されるデータ。 エラー:NowDataError
|
次のコード例は、この関数を呼び出す方法を示しています。
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)
}