On Fri, May 1, 2015 at 7:53 AM, Brad Jorsch (Anomie) bjorsch@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-EventLog... [2] https://gerrit.wikimedia.org/r/#/c/207297/