"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
Request headers:
If-Modified-Since: for cache
If-None-Match: for cacheNotable Request headers: none
Status:
200 – this is the page
304 – not modified; body should be empty
404 – page does not exist (never created or deleted)
HNotable response headers:: none
Body: JSON
Last-modified: last modification date* id: numeric id of the page
ETag: entity tag for* key: prefixed DB key of the pageage, like "Talk:Main_Page"
Location: actual location if redirected
Body: JSON* 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 code for the preferred license for the page
id: id of* other_licenses: array of SPDX codes for alternative licenses for the page
revision_id: revision ID of* contributors: array of User objects for the contributors to the pagee, each with these properties
key: prefixed DB key of the page, like "Talk:Main_Page" ** id: user ID
title: title for display, like "Talk:Main Page" ** name: user name
* html: ReversibleParsoid HTML for the page as generated by Parsoid. No UI or navigation.age