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"), 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:
data
. Do not "smuggle" data that will ultimately
be used as criteria or values in other dsRequest properties, such as HTTP parameters
. 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 data
instead. DataSource.cloneDSRequest()
can be used to
create an equivalent DSRequest.