NowData Framework - iOS

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 3 min. de leitura
  • . NowData A estrutura contém métodos que permitem a instanciação de serviços do NowData, como NowGraphQLService , NowTableService , NowAPIService (Para APIs personalizadas), e. NowAttachmentService .

    NowData - makeApiService(instanceUrl: URL, caminho: Cadeia de caracteres, conclusão: Escapando ((<NowApiService, NowServiceError>) -> Vazio))

    Cria uma instância do NowApiService e, depois de concluído, chama o manipulador de conclusão especificado.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    instanceUrl URL URL do ServiceNow Instância cujas REST APIs devem ser acessadas pelo serviço.
    caminho Cadeia de caracteres Caminho da API.

    Por exemplo, se a chamada de API for https://xxx.service-now.com/api/now/sg/incident , o caminho é /api/now/sg/incident .

    conclusão ((Resultado​> NowApiService Now​Service​Error>) -> Anular) Manipulador de conclusão que é chamado com um <NowApiService, NowServiceError> que contém um inicializado NowApiService instância ou um NowServiceError indicando o motivo da falha na inicialização.
    Tabela 2. Retornos
    Tipo Descrição
    Nenhum(a)

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

    let path = "api/now/sg"
    let apiPublisher = apiService(for: path)
    
    func apiService(for path: String) -> AnyPublisher<NowAPIService, ConfigurationError> {
      guard let instanceURL else {
        return Fail(error: ConfigurationError.invalidInstanceURL)
        .eraseToAnyPublisher()
      }
      return Future { promise in
        NowData.makeApiService(instanceUrl: instanceURL, path: path) { (result) in
          promise(result.mapError { .sdkError($0) })
        }
      }
      .eraseToAnyPublisher()
    }

    NowData - makeAttachmentService(instanceUrl: URL, conclusão: A escape ((<NowAttachmentService, NowServiceError>) -> Anulado))

    Cria uma instância do NowAttachmentService e, após a conclusão, chama o manipulador de conclusão especificado.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    instanceUrl URL URL do ServiceNow instância cujos anexos devem ser acessados pelo serviço.
    conclusão ((Resultado​> NowAttachmentService Now​Service​Error>) -> Anular) Manipulador de conclusão que é chamado com um <NowAttachmentService, NowServiceError> que contém um inicializado NowAttachmentService instância ou um NowServiceError indicando o motivo da falha na inicialização.
    Tabela 4. Retornos
    Tipo Descrição
    Nenhum(a)

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

    ….
    guard 
      let jwtUrl = URL(string: "http://13.57.38.237:8080"),
      let instanceUrl = URL(string: "https://mobilecoresdk.service-now.com") else {
        return
      }
    
    // AuthorizationProvider – struct conforming to NowSDKAuthorizationProviding protocol
    let authorizationProvider = AuthorizationProvider(userEmail: "sdk@servicenow.com", jwtProviderUrl: jwtUrl, clientId: "deb8756b452d201039231ca568f26511")
            
    // PermissionProvider – class conforming to DevicePermissionDelegate protocol
    let permissionProvider = PermissionProvider()
    let config = NowSDKConfiguration(authorizationProvider: authorizationProvider, permissionDelegate: permissionProvider, logLevel: .debug)
    	
    do {
      try NowSDK.configure(with: config)
      initializeAttachmentService (with: instanceURL)
    } catch {
      // Return ConfigurationError.sdkError(error)
    }
    …..
    
    func initializeAttachmentService(instanceUrl: instanceURL) { result in
      switch result {
        case .success(let service)
          self?.attachmentService = service
        case .failure(let error)
          debug.print(“Creating Attachment service failed with error: \(error.localizedDescription)”)
          self?.attachmentService = nil
      }
    }
    

    NowData - makeGraphQLService(instanceUrl: URL, conclusão: A escape ((<NowGraphQLService, NowServiceError>) -> Anulado))

    Cria uma instância do NowGraphQLService e, depois de concluído, chama o manipulador de conclusão especificado.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    instanceUrl URL URL do ServiceNow Instância que fornece serviços GraphQL.
    conclusão ((Resultado​> NowGraphQLService Now​Service​Error>) -> Anular) Manipulador de conclusão que é chamado com um <NowGraphQLService, NowServiceError> que contém um inicializado NowGraphQLService instância ou um NowServiceError indicando o motivo da falha na inicialização.
    Tabela 6. Retornos
    Tipo Descrição
    Nenhum

    func initializeGraphQLService(instanceUrl: URL) {
      makeGraphQLService(instanceUrl: instanceUrl) { [weak self] result in
        switch result {
        case .success(let service):
          self?.graphQLService = service
        case .failure(let error):
          debugPrint("Creating GraphQL service failed with error: \(error.localizedDescription)")
          self?.graphQLService = nil
        }
      }
    }

    NowData - makeTableService(instanceUrl: URL, conclusão: Escapando ((<NowTableService, NowServiceError>) -> Anular))

    Cria uma instância do NowTableService e, após a conclusão, chama o manipulador de conclusão especificado.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    instanceUrl URL URL do ServiceNow instância cujas tabelas serão acessadas pelo serviço.
    conclusão ((Resultado​> NowTableService Now​Service​Error>) -> Anular) Manipulador de conclusão que é chamado com um <NowTableService, NowServiceError> que contém um inicializado NowTableService instância ou um NowServiceError indicando o motivo da falha na inicialização.
    Tabela 8. Retornos
    Tipo Descrição
    Nenhum(a)

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

    func initializeTableService(for instanceUrl: URL) {
      makeTableService(instanceUrl: instanceUrl) { [weak self] result in
        guard let self = self else { return }
                
        switch result {
          case .success(let tableService):
            self.tableService = tableService
            // Create a Paginator that will iterate over pages of customer support cases. The Paginator's response type will be
            // inferred from the Paginator's type definition (e.g. `Paginator<[CustomerServiceCase]>`).
            self.paginator = tableService.paginator(from: Self.tableName, configuration: self.fetchConfiguration)
            // Subscribe to the Paginator's publisher so we will be able to receive paged results.
            self.subscribeToPaginatorPublisher()
            // As we are now ready to start fetching data, inform the view controller.
            self.onReady(self)
          case .failure(let error):
            debugPrint("Creating table service failed with error: \(error.localizedDescription)")
            self.tableService = nil
            self.paginator = nil
        }
      }
    }