"As a Reader, I want to get a page and its contents, so that I can read it whenever I want."
This is the most basic reading use case, retrieving the metadata about the page and the page text in HTML form in a single request. There are optimizations that work better when the reader is online and using a browser or native HTML widget that can load an HTML stream directly; see the related "Reader reads a page online" user story T234377.
GET /page/{title}/with_html
Returns the page as JSON. Title is escaped for slashes
Payload: empty
Notable Request headers: none
Status:
200 – this is the page
304 – not modified; body should be empty
400 - this page cannot be rendered as HTML because of its content model
404 – page does not exist (never created or deleted)
Notable response headers: none
Body: JSON
* id: numeric id of the page
* key: prefixed DB key of the page, like "Talk:Main_Page"
* title: title for display, like "Talk:Main Page"
* latest: latest revision of the page, object with these properties
** id: revision ID
** timestamp: revision timestamp
* license: SPDX codeObject for the preferred license forof the pagege, including these properties:
* other_licenses: array of SPDX codes for alternative licenses for the page
* contributors: array of User objects for the contributors to the page, each with these properties * spdx: SPDX code
** id: user ID* url: URL for the license
** name: user name title: title of the license
* other_licenses: array of objects with {spdx, url, title} for other licenses the page is available under
* content_model: content model for the main slot of the page
* html: Parsoid HTML for the main slot of the page and any other slots that render in-page