Reading/Mobile needs from MediaWiki API

From mediawiki.org

This page documents mobile web and app needs from MediaWiki APIs, mostly the action API.

Phabricator tasks[edit]

T75616 - app tracking task

  • T96956: AbuseFilter should not let users specify arbitrary error codes which are then emitted over the API
  • T95378: Add support to PageImages for finding a freely licensed page image
  • T95072: API blocked error should give details - blocker, target (IP, range, user), expiry, reason, etc.
  • T88083: Mobile apps users should not be shown captchas when creating accounts
  • T30085: Allow user login with email address in addition to username
  • T87824: Create specialised content API for mobile apps
  • T32788: Allow triggering of user password reset email via the API
  • T87336: PageImages shouldn't return images that are not in the lead section
  • T76103: Createaccount API should support username validation without having to try to create an account
  • T74387: "createaccount" action failure should return the name of the extension that caused it to fail.

T87807 - RESTBase Mobile App User Story

T87824 - Create specialised content API for mobile apps

T98145 - [EPIC] Lead images to stable

T98146 - Create an API to get the lead image for an article
T98147 - Create an API to get and set cropping information for the lead image of an article

Migrate api.php requests to use improved formatversion=2

Email threads[edit]

Other[edit]

Principles[edit]

please review

If existing MediaWiki web APIs aren't ideal for mobile, they're probably not ideal for other clients, so improve them. versioning issues?

Underlying APIs should be reusable between desktop and apps.

If you're aggregating api.php requests or need caching, build in RESTbase like https://github.com/wikimedia/mediawiki-services-mobileapps

If you want to store information about a page, e.g. best lead image and its dimensions, you have a choice:

  • using RESTBase, which is currently focusing on storing information about pages and revisions, or
  • store in the wiki DB as page props or new tables

The longer term strategy in this space is evolving currently, so please let us know about your short and long-term needs.

See also[edit]