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