Page MenuHomePhabricator

REST API endpoints and properties to support MCR
Open, MediumPublic

Description

This epic is for adding MCR properties and endpoints to the MediaWiki REST API.

It includes the following endpoints:

EndpointUser storyTicket
GET /page/{title}"As a Reader, I want to know which slots a page has, so I can get more information about the content of the page."T237866: Reader reads a page with slots
GET /revision/{id}"As a Curator, I want to know what slots a revision has, so I can evaluate their quality."T237868: Curator reads a revision with slots
POST /page/{title}/slot"As a Contributor, I want to create a slot for a page, so that I can store metadata or other out-of-band data for the page."T237869: Contributor creates a page slot
GET /page/{title}/slot/{role}"As a Contributor, I want to get the current source for a slot, so I can edit it and update it."T237870: Contributor gets page slot source
PUT /page/{title}/slot/{role}"As a Contributor, I want to update a slot of a page, so that I can improve the page."T237871: Contributor updates a page slot
GET /revision/{id}/slot/{role}"As a Curator, I want to read the source for a slot for a previous revision, so I can understand how the page has developed over time."T237872: Curator reads revision slot source
GET /page/{title}/slot/{role}/with_html"As a Reader, I want to get a rendered representation of a page slot, so I can understand everything about the page."T237874: Reader reads a page slot offline
GET /page/{title}/slot/{role}/bare"As a Reader, I want to read a page slot with HTML separate from the JSON, so I can load the HTML as fast as possible."T237875: Reader reads a page slot online
GET /page/{title}/slot/{role}/html""
GET /revision/{id}/slot/{role}/with_html"As a Curator, I want to get a rendered representation of a revision slot, so I can understand everything about the revision."T237876: Curator reads a revision slot offline
GET /revision/{id}/slot/{role}/bare"As a Curator, I want to read a revision slot with HTML separate from the JSON, so I can load the HTML as fast as possible."T237877: Curator reads a revision slot online
GET /revision/{id}/slot/{role}/html""
GET /page/{title}/slot/{role}/data"As a Reader, I want to read the data of a binary page slot, so I can see the content of the in my viewer."T237879: Reader reads a binary page slot
GET /revision/{id}/slot/{role}/data"As a Curator, I want to read the data of a binary revision slot, so I can see the content of the in my viewer."T237880: Curator reads a binary revision slot
DELETE /page/{title}/slot/{role}"As a Contributor, I want to delete a page slot, because the information in that slot no longer applies to the page."T237883: Contributor deletes a page slot

Related Objects

Event Timeline

eprodromou renamed this task from MCR REST API to REST API endpoints and properties to support MCR.Nov 10 2019, 6:31 PM

There's a lot that's not here yet.

It's not clear to me yet how we represent whether a slot is rendered in-page or somewhere else on the page; if so, hints for where it should be rendered.

There's a wikitext-like division between content models that have a source representation and HTML representation; not all content models will have that.

Some content models might have multiple output representations; not here either.

Finally, the Create and Update paths for content models with binary representation is missing.