We are planning to deprecate the Parsoid endpoints that are currently exposed through RESTbase (T334238). Clients should use the equivalent core endpoints instead. In order to support this, we want to make the URLs of the core endpoints more future proof.
Since the new URLs will use per-module versioning, we need to determin a module name to use for the new URLs of the core endpoints.
The old RESTbase endpoints are:
- /api/rest_v1/page/title/{title}
- /api/rest_v1/page/title/{title}/{revision}
- /api/rest_v1/page/html/{title}
- /api/rest_v1/page/html/{title}/{revision}
In RESTbase, these are defiend in the content module and tagged as "Page content".
The new endpoints will be exposed under:
- /api/xxxxx.v1/page/{title}
- /api/xxxxx.v1/page/{title}/with_html
- /api/xxxxx.v1/page/{title}/html
- /api/xxxxx.v1/page/{title}/bare
- /api/xxxxx.v1/revision/{id}
- /api/xxxxx.v1/revision/{id}/with_html
- /api/xxxxx.v1/revision/{id}/html
- /api/xxxxx.v1/revision/{id}/bare
These endpoints are functionally equivalent but structurally different. The endpoints for retrieving HTML without a JSON wrapper are nearly exactly the same, they only differ in the handling of wiki redirects. We also support POST and PUT for creating/updating pages:
- POST /api/xxxxx.v1/page
- PUT /api/xxxxx.v1/page/{title}
The purpose of this ticket is to decide what we want to replace the xxxxx part with. We could follow the example of RESTbase and use content.v1. Ir we could use pages.v1.
Nither option is idea. Some examples as food for thought:
- /api/pages.v1/revision/{id}/bare (revision meta data, no content, nothign about the page)
- /api/pages.v1/revision/{id}/html (revision HTML)
- /api/content.v1/page/{title} (page meta-data and wikitext)
- /api/content.v1/page/{title}/bare (page meta-data, no content)
Other options?