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