Cacheability is a major goal for the MediaWiki REST API, so we want to avoid GET requests which can be made in multiple ways and would thus split the cache. These include:
- requests with multiple query parameters (or other unordered parameter sets, e.g. a comma-separated list of filters) where ordering is arbitrary
- non-canonical query continuation (i.e. continuation parameters provided by the user which do would not come during a real continuation sequence)
- parameters which are in some non-canonical format (e.g. non-NFC Unicode strings, namespace aliases, nonstandard title capitalization, space vs. underscore)
- requests which refer to an article via a redirect
We should have a strategy for handling these (cached 301/302? reject? serve but do not cache?), preferably provided by the framework.
See also: