https://bugzilla.wikimedia.org/show_bug.cgi?id=41837

--- Comment #18 from Federico "Lox" Lucignano <[email protected]> 
2012-11-10 02:08:38 UTC ---
Hello guys,

sorry for not getting back to this earlier (those are some busy days) :)

I'd like to clarify on an important detail: the new API proposal me and
Siebrand linked to it's not necessarily about re-writing the current API (one
would argue that "API rewrite", the title of the page on MW.org, doesn't really
help from this perspective and if that is the wording also in the kickoff
notes, then those are inaccurate as notes taken while people was
brainstorming/discussing can usually be), it's about creating a new one using a
totally different design for an "high REST service" ("internet scale REST" to
use Daniel's words) using the ROA approach (since REST, like OOP, is a design
criteria and ROA is an actual architectural design), just to say: since REST is
protocol agnostic, we're inquiring alternate transport protocols as an addition
to HTTP(S) too, with the side goal/benefit of making MediaWiki a fully
programmable (not-only-web) service.

Starting afresh will let us structure the whole thing with some built-in
features that are not easy (at times almost impossible) to embed in the current
API, such as authentication (OAuth), performance (caching, hiphop compliance),
stability (versioning), accessibility (Service Description Language, automated
docs based on PHPDoc, normalized URI's, data schema, existing REST client
libraries), quality (unit tests) and re-usability (we're figuring out a way to
use the API classes for developing MediaWiki extensions without the mediation
of FauxRequest) just to mention a few.

Those have been recognized as improvements upon the current situation during
the meeting between the Foundation and Wikia; of course there might be
challenges ahead, but that's why we decided to cooperate and learn from each
other's experiences.

During the same meeting a possible transition proposal has been mentioned
("Legacy support for a while.... maybe support and keep updating the old one
while building the new one. New endpoint, not backwards-compatible.", to use
the exact wording from the notes), this is something which doesn't fall into
the domain of the RFC work we've started recently; there are benefits and
problems that should be analyzed from many different perspectives in both
keeping and deprecating the current API (e.g. breaking old clients,
updating/refactor code, authentication via keys, maintaining both versions,
quotas, performance/caching in no specific order and grouping) and overall that
process is not presented as a goal.

TL;DR: a new API proposal doesn't necessarily mean a death sentence for MW's
API; an RFC, when ready, will be published and will represent just the research
work done by Wikia in cooperation with the Foundation to see where this idea
can lead MediaWiki as a programmable service/platform.

All your feedback is greatly appreciated (especially what you think is good/bad
in the current solution, what you would like to see being added/removed/done
differently), this is all information that is extremely valuable at this time
as it can help us in designing a better solution.

Now onto Mark's proposal of integrating a RESTful interface in the rest of the
platform: the example for the article creation/diff could be simple to address
if we think of the Article class being exposed as an addressable resource and
that by no means REST excludes the usage of parameters in general when they're 
necessary, forms could use directly that resource via the REST entry-point with
no need to modify any current behavior.

And now a small request: I know that some like to keep this in the tracker, but
it would be great if we could move this conversation to the mediawiki-api
mailing list (http://lists.wikimedia.org/pipermail/mediawiki-api/) where other
API consumers and developers could join us in this engaging conversation.

-- 
Configure bugmail: https://bugzilla.wikimedia.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
You are on the CC list for the bug.

_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to