Page MenuHomePhabricator

๐ŸŸข API: expose wiki data in public endpoint
Closed, ResolvedPublic

Description

Requires https://phabricator.wikimedia.org/T344580

In a public (i.e. non-backend) endpoint /wikis/{domain?}, expose data about all wikis (or single one) so it can be consumed by the Discovery feature frontend.

The data returned per wiki should be scrubbed from non-relevant information:

{
  "sitename": <value>
  "domain": <value>
  "isFeatured": <value>
  "description": <value>
  "logo_url": <value>
  "wiki_site_stats": {
    ....
  }
}

The endpoint should allow clients to query for wikis where wikiSiteinfo.pages is greater than 0. The public endpoint needs to be rate limited to prevent abuse. It is read only. It paginates responses.

ACs:

  • a list of wikis can be retrieved by calling GET /wikis
  • a single wiki can be retreived by calling GET /wikis/<domain>
  • Pagination is implememted by passing limit and offset query parameters. A sensible default is used. Responses contain the total number of items.
  • Rate limiting is in place
  • Wikis can be filtered by is_featured and is_active

Event Timeline

Restricted Application added a subscriber: Aklapper. ยท View Herald TranscriptAug 21 2023, 7:42 AM
Deniz_WMDE renamed this task from API: expose wiki data in public endpoint to ๐ŸŸข API: expose wiki data in public endpoint.Aug 21 2023, 9:10 AM

Late thought I had: would it make sense to rename or flatten the wikiSiteinfo object in the response? This way the frontend would be a bit more is decoupled from that mediawiki-specific structure

Fring removed Fring as the assignee of this task.Aug 22 2023, 1:31 PM
Fring moved this task from Doing to In Review on the Wikibase Cloud (Kanban board Q3 2023) board.
Fring updated the task description. (Show Details)
Evelien_WMDE claimed this task.