Talk:Flow Portal/Architecture

Hello! Unsure if this is the right place to ask - but hopefully Flow will have good APIs from the start baked in, so that they can be used by gadgets / tools / bots in awesome ways that Talk pages can never be? I assume we'll have OAuth by then, so integration with that would make a lot of the 'spam' / 'permission' issues go away, and will let us truly build awesome tools. So question is, 'are there APIs planned for everything from the beginning, rather than being something tacked on as an afterthought at the end'? Thanks! :) Yuvipanda (talk) 21:39, 17 July 2013 (UTC)
 * Full support for interacting with Flow via the API is absolutely necessary; there should be no excuse for making it so that bots cannot interact with Flow discussions in all ways that users can via the web UI. And yes, I mean full support, not the "limited fallback support for people who can't use VisualEditor" that I've heard mentioned a few times. If that means the bot has to work with VisualEditor's flavor of HTML, so be it, but then make sure that's well documented (if it isn't already) and clearly linked from the appropriate pages. BJorsch (WMF) (talk) 14:08, 19 July 2013 (UTC)


 * @BJorsch (WMF): No, this is not sufficient, and I would put it stronger: Flow's human-facing UI must only use the APIs it creates. There should be no magic hooks that aren't exposed as API calls. If we can't be honest and architecturally-correct in developing our software, we have failed. Jdforrester (WMF) (talk) 17:28, 19 July 2013 (UTC)
 * I'm not sure what you're saying isn't sufficient. But I'll point out that Flow's human-facing UI can't only "use the APIs it creates", because using the MediaWiki API from a web UI requires JavaScript and AJAX and I hope you aren't planning on leaving users without JavaScript out of Flow entirely. For example, I'd guess that viewing a Flow page would serve HTML containing the discussions and some subset of "action" links/buttons to provide reasonable functionality to non-JS clients, rather than serving a stub page without any content except some JS that queries the API to get all the discussions. On the other hand, it would be possible for Flow to add "APIs" that are so special-purposed to the web UI that any other client would be effectively "screen"-scraping it. That wouldn't be good enough either, were such a thing to be done. BJorsch (WMF) (talk) 15:20, 22 July 2013 (UTC)


 * @BJorsch (WMF): I'm confused. How does writing our code to be architecturally-isolated, like all code should be, require AJAX? I've written dozens of MVC-pattern systems in non-Web technologies; am I missing something? Also, you seem to think that I'm involved in Flow, which isn't true. :-) Jdforrester (WMF) (talk) 15:28, 22 July 2013 (UTC)
 * Sanity check: I'm talking about API here. Are you talking about a different sort of API? BJorsch (WMF) (talk) 12:24, 23 July 2013 (UTC)
 * @BJorsch (WMF): No. :-) If I'd meant "the Web API", I'd have said as such. Jdforrester (WMF) (talk) 15:18, 23 July 2013 (UTC)