NowGraphQLClasse de serviço - iOS

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • . NowGraphQLService A classe fornece funções que permitem que você faça solicitações usando consultas GraphQL em relação aos dados no ServiceNow instância por meio de seu GraphQL REST API.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    configuração NowServiceConfiguration Definições de configuração fornecidas quando o serviço foi inicializado.

    NowGraphQLService - execute(query: GraphQLQuery) lançamentos assíncronos

    Executa a consulta GraphQL especificada.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Consulta GraphQL a ser executada.
    Tabela 3. Retornos
    Tipo Descrição
    Dados Retornado quando o método é bem-sucedido. Dados de consulta gerados a partir da consulta especificada.
    NowDataError Lançado quando o método falha.
    • AccessToken(AccessTokenProviderError)
      • AccessTokenProviderErrorCódigo ou mensagem de erro do provedor do token de acesso.
        • AccessTokenRecupereToken
        • UserSessionError(_ erro: Erro)

      Lançado quando há um erro no token de acesso.

    • AnexoValidação

      Lançado quando um anexo falha na validação.

    • BadResponse(statusCode: HTTPStatusCode)
      • HTTPStatusCodeCódigo de status recebido da instância.

      Acionado quando uma solicitação retorna uma resposta inesperada

    • CannotDecodeModel(DecodingError)
      • DecodingErrorErro de decodificação detectado.

      Lançado quando um modelo codificável não pode ser decodificado do JSON.

    • CannotDecodeProperty(tipo: Qualquer, de: Cadeia de caracteres)
      • type: Tipo encapsulado para decodificar a partir de uma cadeia de caracteres.
      • fromCadeia de caracteres a ser decodificada para o tipo especificado.

      Acionado quando um valor encapsulado de cadeia de caracteres não pode ser decodificado do JSON.

    • CannotEncodeModel(EncodingError)
      • EncodingErrorErro de codificação detectado.

      Lançado quando um modelo codificável não pode ser codificado para JSON.

    • CannotParseResponse

      Acionado quando uma resposta da instância não pode ser analisada em seu formato esperado.

    • URL inválida

      Lançado quando um URL não pode ser formado. Por exemplo, se a cadeia de caracteres contiver caracteres ilegais em uma URL ou for uma cadeia de caracteres vazia.

    • MissingAttachmentMetadados

      Acionado quando o cabeçalho de metadados do anexo está ausente.

    • MissingServiceConfiguration

      Acionado quando uma configuração de serviço esperada está ausente.

    • MissingSySID

      Acionado quando um parâmetro sys_id esperado está ausente.

    • Rede (NetworkServiceError)
      • GenericError (cadeia de caracteres)
      • OperaçãoCancelada
      • Serviço​desabilitado
      • ServerError (Erro)
      • SystemError (Erro)

      Disparado quando um serviço de rede encontrou um erro.

    O exemplo de código a seguir mostra como chamar este método.

    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, conclusão: Escape (<Data, NowDataError>))

    Executa a consulta GraphQL especificada.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Consulta GraphQL a ser executada.
    conclusão Escape (<Data, NowDataError>) Manipulador de conclusão a ser executado após a conclusão da consulta.
    Valores de retorno:
    • Sucesso: Retorna dados da consulta.
    • NowDataError
    Tabela 5. Retornos
    Tipo Descrição
    Nenhum

    gqlService.execute(GraphQLQuery(query: myQuery)) { result in 
      switch result { 
      case .success(let data): 
        // use data 
      case .failure(let error): 
        // handle error 
      } 
    }

    NowGraphQLService - init(configuração: NowServiceConfiguration, coreServiceProvider: NowCoreServiceProviding)

    Cria um NowGraphQLService com base nos parâmetros especificados.

    Tabela 6. Parâmetros
    Nome Tipo Descrição
    configuração NowServiceConfiguration Parâmetros de configuração a serem usados ao inicializar o serviço, como o ID do pacote da aplicação que se integra ao serviço e o URL do ServiceNow Instância que o NowGraphQLService deseja acessar.
    CoreServiceProvider NowCoreServiceProviding Opcional. Provedor de serviço principal.
    Nota:
    Atualmente, este parâmetro é obrigatório, embora seja mostrado como opcional.

    Padrão: Nil

    NowGraphQLService - fornecedor(para consulta: GraphQLQuery)

    Cria um fornecedor para solicitar dados GraphQL.

    Nota:
    Este método foi descontinuado. Em vez disso, você deve usar a implementação async/await do método.
    Tabela 7. Parâmetros
    Nome Tipo Descrição
    para consulta GraphQLQuery Cadeia de caracteres de consulta GraphQL a ser executada.
    Tabela 8. Retornos
    Tipo Descrição
    AnyPublisher<Data, NowDataError> Conjunto de dados GraphQL.

    NowDataError

    O exemplo de código a seguir mostra como chamar esta função.

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