On Fri, May 1, 2015 at 7:53 AM, Brad Jorsch (Anomie) <bjorsch(a)wikimedia.org>
wrote:
The general theme is that the ApiResult arrays now
have more metadata,
which is used to apply a backwards-compatible transformation for clients
that need it
How does ApiResult know if a client needs this transformation? Do you mean
clients requesting in formats other than json?
Is there anything API client developers should check in their code? It
seems all the possible update work is in API module implementors.
Relevant changes include:
...
- Actual booleans should now be added to ApiResult, and will be
automatically converted to the old convention (empty-string for true and
absent for false) when needed for backwards compatibility. Code that was
violating the old convention will need to use the new
ApiResult::META_BC_BOOLS metadata property to prevent this conversion.
Is this the cause of the EventLogging outage [1], [2]?
It seems EventLogging was just naively returning a JSON schema as its
results, could other API modules that return JSON structures containing
binary values also break clients?
If developers need assistance with API issues or code
review for API
modules, please do reach out to me.
Let me know off-list how I can help update the docs. To start, I think this
change description should go on the wiki.
[1]
https://wikitech.wikimedia.org/wiki/Incident_documentation/20150428-EventLo…
[2]
https://gerrit.wikimedia.org/r/#/c/207297/
--
=S Page WMF Tech writer