---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# NowGraphQLService クラス - iOS

# NowGraphQLService クラス - iOS {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：7分

NowGraphQLService クラスには、GraphQL REST API を介して ServiceNow インスタンス上のデータに対して GraphQL クエリを使用して要求を行うことができる関数が用意されています。
{#NowGraphQLServiceiOSAPI__table_vx2_klw_5pb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| 構成 | [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/stoU_DsvecOSpmkh8Wo3FA#NowServiceConfigurationiOSStruct "NowServiceConfiguration 構造体は、フィーチャ サービスの構成情報を定義します。") | サービスが初期化されたときに指定された構成設定。 |
[表 : 1. プロパティ]

{#NowGraphQLServiceiOSAPI__table_vx2_klw_5pb}

## NowGraphQLService - execute(query: GraphQLQuery) async throws {#ariaid-title2}

指定された GraphQL クエリを実行します。
{#NGQLServ-execute-async_S__table_sfm_c4h_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| クエリ | 文字列 | 実行する GraphQL クエリ。 |
[表 : 2. パラメーター]

{#NGQLServ-execute-async_S__table_sfm_c4h_ppb} {#NGQLServ-execute-async_S__table_tfm_c4h_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| Data (データ) | メソッドが成功したときに返されます。指定されたクエリから生成されたクエリデータ。 |
| NowDataError | メソッドが失敗したときにスローされます。 * `accessToken(アクセストークンプロバイダーエラー)` * AccessTokenProviderError:アクセストークンプロバイダーのエラーコードまたはメッセージ。 * アクセストークン取得に失敗しました * userSessionError(_エラー:エラー) アクセストークンにエラーがある場合にスローされます。 * `attachmentValidation` 添付ファイルが検証に失敗したときにスローされます。 * `badResponse(statusCode: HTTPStatusCode)` * HTTPStatusCode:インスタンスから受信したステータスコード。 要求が予期しない応答を返した場合にスローされます * `cannotDecodeModel(デコードエラー)` * DecodingError:デコードエラーが検出されました。 Codable モデルを JSON からデコードできない場合にスローされます。 * `cannotDecodeProperty(タイプ:任意、差出人:文字列)` * type:文字列からデコードするラップされた型。 * from:指定されたタイプにデコードする文字列。 文字列でラップされた値を JSON からデコードできない場合にスローされます。 * `cannotEncodeModel(エンコーディングエラー)` * EncodingError:エンコードエラーが検出されました。 Codable モデルを JSON にエンコードできない場合にスローされます。 * `cannotParseResponse` インスタンスからの応答を予期される形式に解析できない場合にスローされます。 * `無効な URL` URL を形成できない場合にスローされます。たとえば、文字列に URL で無効な文字が含まれているか、空の文字列である場合などです。 * `missingAttachmentMetadata` 添付ファイルのメタデータヘッダーがない場合にスローされます。 * `missingServiceConfiguration` 予期されるサービス構成がない場合にスローされます。 * `missingSysID` 予期されるsys_idパラメーターがない場合にスローされます。 * `network(NetworkServiceError)` * genericError(文字列) * operationCanceled * serviceDisabled * serverError(エラー) * systemError(エラー) ネットワークサービスでエラーが発生した場合にスローされます。 {#NGQLServ-execute-async_S__NowDataErroriOS-ul-enum} |
[表 : 3. 返される内容]

{#NGQLServ-execute-async_S__table_tfm_c4h_ppb}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    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\>)) {#ariaid-title3}

指定された GraphQL クエリを実行します。
{#NGQLServ-execute_S_O__table_sfm_c4h_ppb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| クエリ | 文字列 | 実行する GraphQL クエリ。 |
| 完了 | @escaping (結果\<データ、NowDataError\>) | クエリの完了後に実行する完了ハンドラー。 戻り値: * 成功:クエリデータを返します。 * エラー:NowDataError {#NGQLServ-execute_S_O__ul_tst_1qh_ppb} |
[表 : 4. パラメーター]

{#NGQLServ-execute_S_O__table_sfm_c4h_ppb} {#NGQLServ-execute_S_O__table_tfm_c4h_ppb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#NGQLServ-execute_S_O__table_tfm_c4h_ppb}  
<br />

    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) {#ariaid-title4}

指定されたパラメーターに基づいて NowGraphQLService を作成します。
{#NGQLServ-init_O_O__table_k4t_mnh_ppb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| 構成 | [NowServiceConfiguration](https://servicenow-prod.fluidtopics.net/stoU_DsvecOSpmkh8Wo3FA#NowServiceConfigurationiOSStruct "NowServiceConfiguration 構造体は、フィーチャ サービスの構成情報を定義します。") | サービスを初期化するときに使用する設定パラメーター (サービスと統合するアプリケーションのバンドル ID や、NowGraphQLService がアクセスする ServiceNow インスタンスの URL など)。 |
| coreServiceProvider | NowCoreServiceOffering | オプション。コアサービスプロバイダー。 注: 現在、このパラメーターはオプションとして表示されていますが、必須です。 デフォルト:nil |
[表 : 6. パラメーター]

{#NGQLServ-init_O_O__table_k4t_mnh_ppb}  
<br />

```

```

## NowGraphQLService - publisher (クエリ用:GraphQLQuery) {#ariaid-title5}

GraphQL データを要求するパブリッシャーを作成します。
注:  
このメソッドは廃止されました。代わりに、メソッドの async/await 実装を使用する必要があります。
{#NGQLServ-publisher_S__table_jsv_5wh_ppb__entry__3}

| 名前 | タイプ | Description (説明) |
|-|-|-|
| クエリの場合 | GraphQLQuery | 実行する GraphQL クエリ文字列。 |
[表 : 7. パラメーター]

{#NGQLServ-publisher_S__table_jsv_5wh_ppb} {#NGQLServ-publisher_S__table_ksv_5wh_ppb__entry__2}

| タイプ | Description (説明) |
|-|-|
| AnyPublisher\<Data、NowDataError\> | 成功:GraphQL データセット。 失敗:NowDataError |
[表 : 8. 返される内容]

{#NGQLServ-publisher_S__table_ksv_5wh_ppb}  
次のコード例は、この関数を呼び出す方法を示しています。

    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()
    }


