Wikimedia Platform Engineering/REST proposal/status

Last update on: 2013-01-07

2012-11-06
 Federico Lucignano is one of the main developers on this effort. He will be doing API stuff for Wikia for the next 5 months. Wikia wants to attract motivated app developers and companies using Wikia's products to use the API. They also want to make the APIs more standards-compliant (a RESTful interface, using HTTP verbs), but that's a high-level goal. Mobile-related work is first, driving the direction of some of Federico's work, but this redesign would improve the whole platform, including the enterprise.

Wikimedia and Wikia want to work together on this. Wikimedia Foundation also wants to avoid boxing ourselves into special-purpose, specific apps. Right now we're in the very early stages and I believe Wikia's going to put out an RFC -- the initial research we discussed during the kickoff meeting is starting this week.

2012-11-monthly
Wikia wants to attract motivated app developers and companies using Wikia's products to use the API. They also want to make the API more standards-compliant (a RESTful interface, using HTTP verbs), but that's a high-level goal. Mobile-related work is first, but this redesign would improve the whole platform, including the enterprise. The Wikimedia Foundation and Wikia want to work together on this; The Wikimedia Foundation also wants to avoid boxing ourselves into special-purpose, specific apps. Wikia developer Federico Lucignano is currently working on a Request for comments on the REST proposal.

2012-12-03
 Updates from Wikia:


 * Finishing evaluating ROA as the underlying REST architecture for the RFC
 * Defined the possible format for scope-defining parameters (both hierarchical and single-level)
 * Started identifying the core set of resources to be exposed via the REST interface, evaluating overloaded Post as a way to allow for 3rd party extensions to a resource
 * Completed the outline for a first revision of a protocol-agnostic router/dispatcher model along with the core set of classes of the API framework

Next step: finalize the first set of docs and move the discussion to a larger group including API designer and Tech leads. 

2013-01-07
 Wikia has completed a preliminary prototype (deemed to be disposed after all the valuable data has been collected) in order to:
 * validate the design and its' core concepts
 * identify and explore possible issues
 * test limits imposed by the platform
 * explore the usage of PHP 5.4's new features to ease the implementation of a maintainable versioning system (the prototype abuses PHP's implementation of namespaces in some cases, this is not meant to persist in the final prototype but was rather a stress test)
 * test human readable formatting for responses when called by specific clients
 * measure overhead added by the software abstraction

The code will be available for a short time in a dedicated branch at Wikia's app repository at Github.

As a result some pain points and alternative routes have been identified on which research work will be carried on in late January/beginning of Feburary leading the team closer to a final implementation and related RFC. 