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
    • 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
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