public interface DsRequestEquivalence
automatic cache synchronization
and offline caching and synchronization
).
Aside from basic properties that would clearly make two DSRequests non-equivalent
(dataSource, operationType and data, as well as sortBy, startRow, endRow and textMatchStyle for
a "fetch"), DSRequest.operationId
is
the only property that will cause two DSRequests to be considered distinct (non-equivalent)
requests.
Bearing this in mind, the best practice is:
DSRequest.data
. Do not "smuggle" data that will
ultimately be used as criteria or values in other dsRequest properties, such as HTTP parameters
. DSRequest.operationId
as the sole piece of
information in the request that modifies how the request as a whole is executed. If two or
more pieces of information are required, combine or encode them into a single operationId
String. If this becomes awkward because there are many operation variants, consider including
additional fields in DSRequest.data
instead.
DataSource.cloneDSRequest()
can be used to create an equivalent DSRequest.