Page MenuHomePhabricator

[Epic] Image browsing: build out the back-end
Closed, ResolvedPublic

Description

[ Placeholder epic for now; this may include custom API endpoints, image recommendation pipelines, etc]

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
egardner triaged this task as Medium priority.Jul 2 2025, 7:06 PM

If we expose MediaWiki REST API endpoints, we can add -beta suffixes to module paths or versions. See T395713: REST: Beta Modules - support beta suffix in module ids and versions.
Thanks @BPirkle for the heads-up, feel free to chime in with more details.

If we expose MediaWiki REST API endpoints, we can add -beta suffixes to module paths or versions. See T395713: REST: Beta Modules - support beta suffix in module ids and versions.
Thanks @BPirkle for the heads-up, feel free to chime in with more details.

If we can rely on any existing (or emerging) convention to signal that API endoints we set up for our experiments are not stable, that is great. Then we could still take advantage of other amenities like the API sandbox I assume (which could be useful in testing and development).

@BPirkle, I strongly agree with this from T395713:

Today, experimentation is done in a haphazard manner across a limited set of teams. In many cases, the experimental state is only stated in documentation, which leads to some adoption in production applications.

Having experimental features "accidentally" becoming productionized is exactly what I'm hoping to avoid; many of my initial ideas for the ReaderExperiments codebase we're going to set up are motivated by this.

(This is mostly copy-paste from my chat with Marco in Slack)

The newer pattern (sorry this is not all documented yet, we're working on it) is to use MW REST "modules", which are effectively collections of API endpoints. We're using ReadingLists as the initial implementation in an extension. Basically, you put your routes into an external json file. This gives you an opportunity to add some metadata, and also gives a nice place to see a clean git history for changes to your routes over time. The -beta would go in the moduleId and version fields, per this experimental change.

Some relevant links:

And yes, this also better positions you for the REST Sandbox. It is currently "experimental" and only available on a few wikis, but we have plans to make it available everywhere.

We'd be very excited to see another team using all this, and to get any feedback you may have. So when you're ready to start coding, please reach out and we'll be happy to help in any way we can!