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