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(a)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(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mobile-l