Wikimedia Apps/App Services

Problems

 * Multiple round trips to retrieve data for a single view
 * concrete examples needed
 * Payloads are unnecessarily large due to unused fields in the response.
 * concrete examples needed
 * Lack of cache control data to remove/simplify client-side cache invalidation.
 * All aggregation and transformation is done multiple times (once for each client).

MVP Scope
We decided that the scope of the service should be feature parity; the service should be a drop-in replacement for our current API calls. More concretely, this means it should give us:


 * Data from mobileview
 * Wikidata description
 * Revision ID of page
 * Wikibase ID
 * Image meta data for all images in the page
 * License
 * Description
 * Includes the URL for the high resolution version used for the lead image
 * Exclude unused HTML
 * Navboxes, etc.
 * Exclude hidden elements
 * CSS: display: none; unless if we display later
 * Related articles suggestions from full text search API

Beyond MVP
Things which we want to add, but are out of scope for the first iteration:


 * Arbitrary Wikidata properties
 * Disambiguation (already "transcluded", following the chain of disambiguation pages and returning a JSON array of those links)
 * Page issues
 * Interwiki links
 * Table of contents (as a JSON array)

Open questions

 * Versioning? What if we add or remove a field from the response? We should version this. Can we do this easily?