"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: Object for the preferred license of the page, including these properties:
- spdx: SPDX code
- url: URL for the license
- 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