"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 cache
Status:
200 – this is the page
304 – not modified; body should be empty
404 – page does not exist (never created or deleted)
Headers:
Last-modified: last modification date of the page
ETag: entity tag for the page
Location: actual location if redirected
Body: JSON
id: id of the page
revision_id: revision ID of the page
title_key: prefixed DB key of the page, like "Talk:Main_Page"
display_title: title for display, like "Talk:Main Page"
html: html (processed) text of the page. No commitment on whether this is "default" HTML from the old parser, or marked up HTML from Parsoid. Probably default first, transitions to Parsoid when that comes into core.