NowGraphQLService クラス - iOS
NowGraphQLService クラスには、GraphQL REST API を介して ServiceNow インスタンス上のデータに対して GraphQL クエリを使用して要求を行うことができる関数が用意されています。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| 構成 | NowServiceConfiguration | サービスが初期化されたときに指定された構成設定。 |
NowGraphQLService - execute(query: GraphQLQuery) async throws
指定された GraphQL クエリを実行します。
| 名前 | タイプ | 説明 |
|---|---|---|
| クエリ | 文字列 | 実行する GraphQL クエリ。 |
| タイプ | 説明 |
|---|---|
| Data (データ) | メソッドが成功したときに返されます。指定されたクエリから生成されたクエリデータ。 |
| NowDataError | メソッドが失敗したときにスローされます。
|
次のコード例は、このメソッドを呼び出す方法を示しています。
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(query: GraphQLQuery, completion: @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 を作成します。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| 構成 | NowServiceConfiguration | サービスを初期化するときに使用する設定パラメーター (サービスと統合するアプリケーションのバンドル ID や、NowGraphQLService がアクセスする ServiceNow インスタンスの URL など)。 |
| coreServiceProvider | NowCoreServiceOffering | オプション。コアサービスプロバイダー。 注: 現在、このパラメーターはオプションとして表示されていますが、必須です。 デフォルト:nil |
NowGraphQLService - publisher (クエリ用:GraphQLQuery)
GraphQL データを要求するパブリッシャーを作成します。
注:
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
| 名前 | タイプ | Description (説明) |
|---|---|---|
| クエリの場合 | GraphQLQuery | 実行する GraphQL クエリ文字列。 |
| タイプ | Description (説明) |
|---|---|
| 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()
}