Service Initialization with the Dynamic API¶
DataService
requires an implementation of the DataServiceProvider
interface as a parameter to its constructor. This section uses an instance of OnlineODataProvider
to interact with the service in an online fashion, which sends requests directly to the service provider. Offline usage requires the OfflineODataProvider
.
// Create an instance of OnlineODataProvider
OnlineODataProvider provider = new OnlineODataProvider("EventService",
SERVICE_URL, new OkHttpClient.Builder().build(), true);
// HttpHandler can also be set
// provider.getNetworkOptions().setHttpHandler(handler);
// Create an instance of DataService
DataService dataService = new DataService(provider);
// Disable data service version check
// Avoid error when OData provider returns version below V2.0
provider.getServiceOptions().setCheckVersion(false);
// Configuration
// Set OData trace options
provider.setTraceRequests(true);
provider.setTraceWithData(true);
provider.setPrettyTracing(true);
// Set Atom as the data format
// provider.getServiceOptions().setDataFormat(DataFormat.ATOM);
// Set JSON as the data format
provider.getServiceOptions().setDataFormat(DataFormat.JSON);
// If service does not support batch, turn off batch requests
// provider.getServiceOptions().setSupportsBatch(false);
// Allow HTTP verb tunneling over OData batch requests
provider.getNetworkOptions().setAllowTunneling(true);
// Disable compression
// provider.getNetworkOptions().setCompressResponses(false);
// Disable streamed downloads
// provider.getNetworkOptions().setStreamDownloads(false);
// Disable streamed uploads
// provider.getNetworkOptions().setStreamUploads(false);
// Ping server to check connection
dataService.pingServer();
// Get provider from service reference
provider = (OnlineODataProvider) dataService.getProvider();
// Create an instance of OnlineODataProvider
val provider = OnlineODataProvider("EventService",
SERVICE_URL, OkHttpClient.Builder().build(), true)
// HttpHandler can also be set
// provider.networkOptions.httpHandler = handler
// Create an instance of DataService
val dataService = DataService(provider)
// Disable data service version check
// Avoid error when OData provider returns version below V2.0
provider.serviceOptions.checkVersion = false
// Configuration
// Set OData trace options
provider.traceRequests = true
provider.traceWithData = true
provider.prettyTracing = true
// Set Atom as the data format
// provider.serviceOptions.dataFormat = DataFormat.ATOM
// Set JSON as the data format
provider.serviceOptions.dataFormat = DataFormat.JSON
// If service does not support batch, turn off batch requests
// provider.serviceOptions.supportsBatch = false
// Allow HTTP verb tunneling over OData batch requests
provider.networkOptions.allowTunneling = true
// Disable compression
// provider.networkOptions.compressResponses = false
// Disable streamed downloads
// provider.networkOptions.streamDownloads = false
// Disable streamed uploads
// provider.networkOptions.streamUploads = false
// Ping server to check connection
dataService.pingServer();
// Get provider from service reference
provider = dataService.provider as OnlineODataProvider
Last update: April 14, 2021