Output 2.1

From atwg
Revision as of 22:36, 14 February 2018 by Ccicalese (talk | contribs)
Output REST API for MediaWiki
Parent Outcome More of the full functionality of MediaWiki can be delivered across all interfaces, devices, and form factors while maintaining usability, accessibility, and internationalization standards
Primary Team MediaWiki Platform
Collaborating Teams Audiences Product and Design, Services, Reading Infrastructure
TaskDescriptionDepends On TasksTypeAssociated OutputsPrimary TeamCollaborating TeamsStart YearDurationRisksContingenciesBenefitsAssumptionsImplicationsNotes
Make REST Routing possible in MediaWikiEnable PHP based routing of URLs in MediaWiki to enable REST along with an easy way for developers to specify caching and purging semantics. The routing should be fast and preferably not require all of MediaWiki to be loaded in order to start. Routing patterns should be standard both in and outside of MW. This should be transparent to clients.Write Architecture SpecDevelopmentOutput 2.1MediaWiki PlatformServices, Reading Infrastructure06Routing for external services should be handled outside of MediaWiki (Varnish). The MW routing should be done using a service runner that can be run separately from MW for WMF use, but could be run in the same process for small installs. Where a service lives, node, MW, or elsewhere should be transparent to clients. We should then figure out any necessary routing, mapping, proxying, etc without the clients needing to worry about this. This means we have an agreed upon REST url pattern that spans all services and routers. For MW APIs, thsse should be routed from Varnish to MW via some sort of configuration.
Identify features that the REST API needs to supportPerform Product and IA analysis to identify which workflows and features to build REST APIs (and PHP APIs) to prioritize first as needed we work to expose more of the full functionality of MediaWiki APIs.ResearchOutput 2.1Audiences Product and DesignReaders Web, Reading Infrastructure, Services, MediaWiki Platform0
Design MediaWiki REST APIDesign and prototype a REST API that would enable the full functionality of the desktop web experience in MediaWiki Core (and "critical" extensions?) with cacheability and consistent parameters, property names and objects. Note that this highly depends on the overall design of information flow (see Output 1.1)Identify features that the REST API needs to supportRefactor MediaWiki Core into well encapsulated components, removing global state and circular dependencies between classesOutput 2.1MediaWiki PlatformServices, Reading Infrastructure06Should be designed by a group consisting of members from the MW Platform team, Services, Readers and Contributors. This ensures that those who know the MW platform best, those who have experience designing REST services, and those who implement the clients all agree on the design
Develop MediaWiki REST APIImplement the REST API incrementally by addressing one feature at a time in coreMake REST Routing possible in MediaWikiDesign MediaWiki REST APIDevelopmentOutput 2.1MediaWiki PlatformServices, Reading Infrastructure