NowData-Framework: IOS
Die Now-Daten Framework enthält Methoden, die die Instanziierung von NowData-Services ermöglichen, z. B. NowGraphQLService , NowTableService , NowAPIService (Für anwenderdefinierte APIs), und NowAttachmentService .
NowData – makeApiService(instanceUrl: URL, Pfad: Zeichenfolge, Abschluss: @Escaping ((Result<NowApiService, NowServiceError>) -> ungültig))
Erstellt eine Instanz von NowApiService und ruft nach Abschluss den angegebenen Abschlusshandler auf.
| Name | Typ | Beschreibung |
|---|---|---|
| instanceUrl | URL | URL von ServiceNow Instanz, auf deren REST-APIs der Service zugreifen soll. |
| path | Zeichenfolge | API-Pfad. Beispiel: Wenn der API-Aufruf lautet |
| Abschluss | @Escaping ((Ergebnis< NowApiService , Now-Servicefehler>) -> Ungültig) | Abschlusshandler, der mit aufgerufen wird Result<NowApiService, NowServiceError> Enthält entweder einen initialisierten NowApiService Instanz oder ein NowServiceError Gibt an, warum die Initialisierung fehlgeschlagen ist. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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, Abschluss: @Escaping ((Result<NowAttachmentService, NowServiceError>) -> ungültig))
Erstellt eine Instanz von NowAttachmentService und ruft nach Abschluss den angegebenen Abschlusshandler auf.
| Name | Typ | Beschreibung |
|---|---|---|
| instanceUrl | URL | URL von ServiceNow Instanz, auf deren Anhänge der Service zugreifen soll. |
| Abschluss | @Escaping ((Ergebnis< NowAttachmentService , Now-Servicefehler>) -> Ungültig) | Abschlusshandler, der mit aufgerufen wird Result<NowAttachmentService, NowServiceError> Enthält entweder einen initialisierten NowAttachmentService Instanz oder ein NowServiceError Gibt an, warum die Initialisierung fehlgeschlagen ist. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
….
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, Abschluss: @Escaping ((Result<NowGraphQLService, NowServiceError>) -> ungültig))
Erstellt eine Instanz von NowGraphQLService und ruft nach Abschluss den angegebenen Abschlusshandler auf.
| Name | Typ | Beschreibung |
|---|---|---|
| instanceUrl | URL | URL von ServiceNow Instanz, die GraphQL-Services bereitstellt. |
| Abschluss | @Escaping ((Ergebnis< NowGraphQLService , Now-Servicefehler>) -> Ungültig) | Abschlusshandler, der mit aufgerufen wird Result<NowGraphQLService, NowServiceError> Enthält entweder einen initialisierten NowGraphQLService Instanz oder ein NowServiceError Gibt an, warum die Initialisierung fehlgeschlagen ist. |
| Typ | Beschreibung |
|---|---|
| Keine |
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, Abschluss: @Escaping ((Result<NowTableService, NowServiceError>) -> ungültig))
Erstellt eine Instanz von NowTableService und ruft nach Abschluss den angegebenen Abschlusshandler auf.
| Name | Typ | Beschreibung |
|---|---|---|
| instanceUrl | URL | URL von ServiceNow Instanz, auf deren Tabellen der Service zugreifen soll. |
| Abschluss | @Escaping ((Ergebnis< NowTableService , Now-Servicefehler>) -> Ungültig) | Abschlusshandler, der mit aufgerufen wird Result<NowTableService, NowServiceError> Enthält entweder einen initialisierten NowTableService Instanz oder ein NowServiceError Gibt an, warum die Initialisierung fehlgeschlagen ist. |
| Typ | Beschreibung |
|---|---|
| Keine |
Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.
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
}
}
}