NowGraphQLService 클래스 - iOS
NowGraphQLService 클래스는 GraphQL REST API를 통해 인스턴스의 데이터에 대해 GraphQL 쿼리를 사용하여 요청할 수 있는 ServiceNow 기능을 제공합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | NowService구성 | 서비스를 초기화할 때 제공된 구성 설정입니다. |
NowGraphQLService - execute(query: GraphQLQuery) async throws
지정된 GraphQL 쿼리를 실행합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 쿼리 | 문자열 | 실행할 GraphQL 쿼리입니다. |
| 유형 | 설명 |
|---|---|
| 데이터 | 메서드가 성공할 경우 반환됩니다. 지정된 쿼리에서 생성된 쿼리 데이터입니다. |
| NowDataError | 메서드가 실패할 때 throw됩니다.
|
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
private func fetchArticles() async throws -> [Article] {
guard let graphQLService = graphQLService else {
throw ArticleListError.invalidGraphQLService
}
do {
let data = try await graphQLService.execute(GraphQLQuery(query: recentlyPublishedQuery))
let articles = try dataToArticleList(data)
} catch let error as NowDataError {
throw ArticleListError.fetchError(error)
} catch {
throw error
}
}
private let recentlyPublishedQuery =
"""
{
GlideRecord_Query {
kb_knowledge(queryConditions: "active=true^ORDERBYpublishedDESC" pagination: { limit: 10, offset: 0 }) {
_results {
sys_id {
value
},
number {
displayValue
},
short_description {
displayValue
},
author {
displayValue
}
published {
displayValue
}
}
}
}
}
"""
NowGraphQLService - execute(쿼리: GraphQLQuery, 완료: @escaping (Result<Data, NowDataError>))
지정된 GraphQL 쿼리를 실행합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 쿼리 | 문자열 | 실행할 GraphQL 쿼리입니다. |
| 완료 | @escaping(결과<데이터, NowDataError>) | 쿼리가 완료된 후 실행할 완료 핸들러입니다. 반환 값:
|
| 유형 | 설명 |
|---|---|
| 없음 |
gqlService.execute(GraphQLQuery(query: myQuery)) { result in
switch result {
case .success(let data):
// use data
case .failure(let error):
// handle error
}
}
NowGraphQLService - init(configuration: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding)
지정된 매개변수를 기반으로 NowGraphQLService를 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 구성 | NowService구성 | 서비스를 초기화할 때 사용할 구성 매개변수(예: 서비스와 통합하는 애플리케이션의 번들 ID 및 NowGraphQLService가 액세스하려는 인스턴스의 URL ServiceNow )입니다. |
| 코어서비스제공자 | NowCoreService제공 | 옵션입니다. 핵심 서비스 공급자. 주: 현재 이 매개변수는 선택 사항으로 표시되어 있더라도 필수입니다. 기본값: nil |
NowGraphQLService - 게시자(쿼리용: GraphQLQuery)
GraphQL 데이터를 요청할 게시자를 만듭니다.
주:
이 메서드는 더 이상 사용되지 않습니다. 대신 메서드의 async/await 구현을 사용해야 합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 쿼리용 | GraphQLQuery | 실행할 GraphQL 쿼리 문자열입니다. |
| 유형 | 설명 |
|---|---|
| AnyPublisher<Data, NowDataError> | 성공: GraphQL 데이터 세트. 실패: NowDataError |
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.
private func fetchArticles() -> AnyPublisher<[Article], ArticleListError> {
guard let graphQLService = graphQLService else {
return Fail(error: .invalidGraphQLService).eraseToAnyPublisher()
}
return graphQLService.publisher(for: GraphQLQuery(query: recentlyPublishedQuery))
.mapError({ dataError -> ArticleListError in
.fetchError(dataError)
})
.flatMap(dataToArticleList)
.eraseToAnyPublisher()
}