Page MenuHomePhabricator

[EPIC] Deprecate the MobileView API
Open, MediumPublic

Description

The MobileView API was originally made for apps. Now that the MCS is being used (T103362),, its value is questionable given its maintenance cost. On the long term it seems like a good idea strategically to deprecate it.

The MobileView API is only used for the MainPage. This code will also be redundant upon completion of T32405.

Of course deprecating should be done carefully - there may be other consumers of this API, but we should explore who they are and how we can get them using MCS.

Note: The MobileFormatter will continue to exist for MediaWiki mobile web views. The MobileView API actually has a lot of logic that is not shared by the MobileFormatter.

Developer note

Open questions

  • The PageGateway uses the mobileview api to get and allow lazy loaded references and to get pages. How could this work without the MobileView API? Can it work? What are alternative options?

Timeline

If all goes to plan all Wikimedia apps will be off the API come February of 2020. This is blocked on T236733 and T236731.
After that, we'll wait until the usage is low enough (in apps) to warrant its removal.
So theoretically the API will be around till at least the end of 2020

Related Objects

StatusAssignedTask
OpenNone
OpenNone
Opencscott
OpenNone
Opencscott
Invalid GWicke
Resolvedliangent
Resolvedthiemowmde
OpenNone
Resolvedcscott
Resolvedcscott
ResolvedElitre
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedcscott
Resolvedcscott
Opencscott
Resolvedcscott
Opencscott
Opencscott
Opencscott
OpenNone
OpenNone
Resolved Jdlrobson
DuplicateNone
OpenNone
ResolvedTgr
ResolvedAnomie
Resolvedtstarling
Resolvedcoren
ResolvedAnomie
StalledMhurd
ResolvedAnomie
ResolvedEsanders
ResolvedEsanders
Resolvedssastry
ResolvedAnomie
ResolvedCKoerner_WMF
Resolvedjhsoby
ResolvedTgr
DeclinedTgr
Resolvedcoren
ResolvedAnomie
ResolvedTgr
DeclinedNone
Resolvedssastry
ResolvedTgr
ResolvedTgr
ResolvedTgr
ResolvedDeskana
ResolvedCKoerner_WMF
ResolvedWhatamidoing-WMF
ResolvedTgr
ResolvedTgr
ResolvedTgr
ResolvedUrbanecm
ResolvedTgr
ResolvedTacsipacsi
ResolvedTgr
ResolvedCKoerner_WMF
StalledNone
DeclinedNone
DeclinedNone
OpenNone
Openovasileva

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald TranscriptFeb 6 2018, 6:01 PM

The Android app still uses the mobileview API for certain classes of page requests, most notably for zhwiki page requests because language variant support is still lacking in the Parsoid/RB stack (T43716: Support language variant conversion in Parsoid, T159985: Implement language variant support in the REST API).

AFAIK the iOS app still uses the mobileview API for all page loads. If there's a plan to transition the iOS app to MCS page loads, I'm not aware of it. (Ping @JoeWalsh: any updates on this front?)

I guess it's still appropriate to formally deprecate this, just wanted to point out that it's still very much in use.

@Mholloway updating to MCS is on our radar (and we've done some of the initial legwork) but so far not on any roadmap. We could change that though if it's imperative to switch. CC @Mhurd @JMinor

Definitely. To be clear we are just thinking about this at the moment. There are no plans to remove it completely yet but we are thinking we might want to discourage its use. T43716 would be a blocker for doing that.

@Jdlrobson MCS is currently using action=mobileview for the main pages since the content of the main page content is not responsive. Hoping for T138622#3416133 to get done. Then we could get rid of the special handling there.

Jdlrobson triaged this task as Medium priority.Jul 10 2018, 9:37 PM
JoeWalsh updated the task description. (Show Details)Mar 27 2019, 4:59 PM

The PageGateway uses the mobileview api to get and allow lazy loaded references and to get pages. How could this work without the MobileView API? Can it work? What are alternative options?

One alternative could be the references endpoint in PCS. The drawback for the web is probably that it requires RESTBase, though.

Jdlrobson updated the task description. (Show Details)