There are two main approaches to versioning y'all can take:
One is the method used by most MediaWiki API modules where if you want a new bit of info that wasn't in the default before, you have to ask for it... and you never remove anything from defaults for fear of breaking things.
The other is to use a nice linear versioning scheme, where you go to "/api/v1/" or "/api/v2/" etc and the version number controls the business logic of which elements get fetched and inserted into the response.
I tend to favor the latter as it's conceptually simpler and fits with the concept of versioning up the apps along with their associated service. (The former is more flexible but also means your requests get longer and longer as you add features.)
-- brion
On Thu, Feb 5, 2015 at 12:00 PM, Dan Garry dgarry@wikimedia.org wrote:
Some of the Mobile Apps Team engineers met to discuss the scope of the MVP for a mobile apps content service.
Firstly, we enumerated our goals for this content service:
- Minimise number of requests the app has to make to generate a page
- Reduce payload size of requests
- Abstract away from of the API logic contained in the client into the
server instead
- Do some of the transforms that are currently done on the client on
the server instead, where appropriate
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
lead image
- Description
- Includes the URL for the high resolution version used for the
- Exclude unused HTML
- Navboxes, etc.
- Exclude hidden elements
- CSS: display: none; unless if we display later
- Related articles suggestions from full text search API
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?
Thanks, Dan
-- Dan Garry Associate Product Manager, Mobile Apps Wikimedia Foundation
Mobile-l mailing list Mobile-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mobile-l