Acceptance Criteria:
- Define route for /search/page?q={search term}
- Define route handler for page search
- Request:
- Must support HTTP GET
- Must support q parameter
- If no q parameter provided, error
- Request body must be empty
- Request headers:
- Must support If-Modified-Since: only if the result set has changed since this date
- Must support If-None-Match: only if the result set's etag is different from this
- Response
- Response must return JSON
- Responses JSON must have structure:
{ "pages": [ { "id": 12345, "title_key": "Talk:Main_Page", "display_title": "Talk:Main Page", "excerpt": "The <b>News</b> is the place to find important news..." } ] }
- id must contain the page numeric ID.
- title_key must contain the pdbk version of the title
- display_title must contain the version of the title most suited for display, with spaces instead of underscores
- excerpt must contain the search excerpt HTML of the page
- Response headers must contain:
- Last-Modified: last time this result set was modified
- ETag: etag for this result set