NowAPIService 클래스 - iOS
NowAPIService 클래스는 지정된 ServiceNow REST API에 대한 요청을 수행할 수 있는 함수를 제공합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | NowServiceConfiguration | 프로토콜과 연결할 서비스 구성입니다. |
NowAPIService - 데이터(엔드포인트의 경우: NowAPIEndpoint, queryItems: [문자열: 문자열], httpHeaders: [문자열: 문자열], 본문: 데이터, 완성: @escaping(결과<DataResponse, NowDataError>)
지정된 ServiceNow REST API에서 데이터를 요청한 다음 완료 핸들러를 실행합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 엔드포인트용 | NowAPIEndpoint | HTTP 메서드, 엔드포인트에 ServiceNow 대한 상대 경로, 경로 매개변수, 인증 필요 여부 등 액세스할 REST API 엔드포인트가 포함된 객체입니다. |
| queryItems (쿼리 항목) | 배열 | 옵션입니다. 엔드포인트에 대한 쿼리 매개변수(키/값 쌍)입니다. 기본값 : nil |
| httpHeaders | 배열 | 옵션입니다. 엔드포인트에 키/값 쌍으로 필요한 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에서 데이터를 요청합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 엔드포인트용 | NowAPIEndpoint | 액세스 권한이 포함된REST API 엔드포인트(HTTP 메서드, 엔드포인트에 ServiceNow 대한 상대 경로, 경로 매개변수 및 인증 필요 여부 등)를 포함하는 객체입니다. |
| queryItems (쿼리 항목) | 배열 | 옵션입니다. 엔드포인트에 대한 쿼리 매개변수 (키/값 쌍)입니다. 기본값 : nil |
| httpHeaders | 배열 | 옵션입니다. 엔드포인트에 키/값 쌍으로 필요한 HTTP 헤더를 요청합니다. 기본값 : nil |
| 본문 | 문자열 | 옵션입니다. Request body parameters. 기본값 : nil |
| 유형 | 설명 |
|---|---|
| 데이터 응답 | 메서드가 성공하면 반환됩니다. REST API 호출의 데이터입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다.
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
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 - 데이터(엔드포인트의 경우: NowAPIEndpoint, queryItems: [String: String]? = nil, httpHeaders: [string: String]? = nil, body: Data? = nil)
지정된 ServiceNow REST API에서 데이터를 요청합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 엔드포인트용 | NowAPIEndpoint | HTTP 메서드, 엔드포인트에 ServiceNow 대한 상대 경로, 경로 매개변수, 인증 필요 여부 등 액세스할 REST API 엔드포인트가 포함된 객체입니다. |
| queryItems (쿼리 항목) | 배열 | 옵션입니다. 엔드포인트에 대한 쿼리 매개변수(키/값 쌍)입니다. 기본값 : nil |
| httpHeaders | 배열 | 옵션입니다. 엔드포인트에 키/값 쌍으로 필요한 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)
}