DiscoveryServiceConfigurationProvider
open class DiscoveryServiceConfigurationProvider : ConfigurationProviding
Built-in configuration provider that obtains data from the SAP Discovery Service.
Examples
Example for obtaining configuration from the global Discovery Service with an email address when using domain-based configuration.
let provider = DiscoveryServiceConfigurationProvider(applicationID: "")
let (providerSuccess, configuration, _) = provider.provideConfiguration(input: [ConfigurationProviderInputKeys.emailAddress.rawValue : "example@sap.com"])
if providerSuccess {
// use configuration
}
Example for obtaining configuration from the global Discovery Service with an onboarding code when using onboardingCode-based configuration.
let provider = DiscoveryServiceConfigurationProvider(applicationID: "")
let (providerSuccess, configuration, _) = provider.provideConfiguration(input: [ConfigurationProviderInputKeys.onboardingCode.rawValue : "12345678"])
if providerSuccess {
// use configuration
}
Further Documentation
See Enabling Applications to Discover Configurations and Using the Configuration Discovery Service for domain-based configuration.
See Discovery Service - Onboarding Codes for onboarding-code-based configuration.
-
Default class initializer.
Declaration
Swift
public convenience init()
-
Overloaded class initializer. Creates a
DiscoveryServiceConfigurationProvider
object with the specified app identifier.Declaration
Swift
public init(applicationID: String? = nil, discoveryServiceHost: String? = nil)
Parameters
applicationID
App identifier to use for web requests to the Discovery Service. If no value is supplied, the calling app’s CFBundleIdentifier value will be obtained at runtime. This parameter allows for obtaining configuration data for a different app than the caller.
discoveryServiceHost
Discovery Service Host parameter used for storing custom discoveryServiceHost url. This url is used to obtain data from SAP Discovery Service. If no value is supplied, default Discovery Service Host is obtained from function discoveryServiceHostnameFor(_:).
-
A read-only property. The value for this class is
com.sap.configuration.provider.discoveryservice
.Declaration
Swift
public var providerIdentifier: String { get }
-
Reports what input(s) are required for
DiscoveryServiceConfigurationProvider.provideConfiguration(input:)
.Alternatively, you can provide a
Dictionary
containing the keyConfigurationProviderInputKeys.onboardingCode
and a corresponding value.Declaration
Swift
public var expectedInput: [String : Any] { get }
Return Value
a
Dictionary
containing the keyConfigurationProviderInputKeys.emailAddress
for which you need to set a value.
-
Attempts to obtain data if required input has been supplied.
Declaration
Swift
public func provideConfiguration(input: [String : Any] = [:]) -> (providerSuccess: Bool, configuration: NSDictionary, returnError: Error?)
Parameters
input
Data supplied by app in response to
expectedInput
dictionary.Return Value
A tuple consisting of
providerSuccess
(success/fail result),configuration
if available, andreturnError
if applicable.