User:APatro (WMF)/RESTBase Sunsetting

Reading material

 * Manual:Architectural modules/Parser
 * https://miro.com/app/board/uXjVOi-LVy0=/ - an overview of the data flow in the parsoid endpoints, when and how we do stashing and caching, and what we are changing
 * https://miro.com/app/board/uXjVOqd1rj0=/ - an overview of how HTML is shoveled around between parsoid, the cache and the stash

Glossary

 * ParsoidOutputAccess - Service for getting parsoid outputs and warms the cache with pregenerated outputs.
 * ParserCache - Cache for  objects corresponding to the latest page revisions. The   is a two-tiered cache backed by   which supports varying the stored content on the values of   used during a page parse.
 * ParsoidOutputStash - Parsoid HTML and Parsoid metadata from storage. Add stash option to  &   endpoints. When this option is set, the   returned by   is stashed and an etag is returned that can later be used to make use of the stashed PageBundle.
 * PageBundle (PB): Returned by the . Represents a parsed page from  .   is equivalent to the given.
 * WikitextContentHandler - Content handler for wiki text pages.  instances are stateless singletons that serve, among other things, as a factory for Content objects. Generally, there is one subclass of   and one subclass of   for every type of content model.
 * RevisionRenderer - The  service provides access to rendered output for revisions. It does so by acting as a factory for   instances, which in turn provide lazy access to   objects.
 * RenderedRevision -  represents the rendered representation of a revision. It acts as a lazy provider of   objects for the revision's individual slots, as well as a combined   of all slots.
 * ParserOptions - The parsing of wikitext is based on the applied .   are initialized from the   where the   and   are the two important parameters.
 * ParserOutput - The result of parsing is stored as the  object. The main attribute here is , that holds the whole HTML representation of the article content. Besides that   holds separately categories, links, images, sections, templates and other "parts" of the article as variables. Moreover, it holds information relevant for caching – cache time, expiry and revision. After the   is produced, the values of its attributes are set to the   object.
 * PoolWorkArticleView - After the wikitext is parsed and  is created (in  ), the output will be cached if cache expiry > 0 and we are dealing with the latest revision of the article.
 * PageContentHelper - Used for accessing page content. Introduced in https://gerrit.wikimedia.org/r/c/mediawiki/core/+/642652
 * ParsoidClient - Client to convert wikitext to html and html to wikitext using the Parsoid. Different implementations of this exist, such as  and.
 * ParsoidHandler - Base class for Parsoid handlers.
 * TransformHandler - REST API Handler for transforming content given in the requests:,  ,  . Extends the.
 * VRSParsoidClient - A  that does transformation using the REST API. See patch.
 * DirectParsoidClient - Previously the . Uses the Parsoid directly for transformation, and not the REST interface. See patch.
 * WTTransform - Logic to transform wikitext to HTML.
 * HTMLTransform - Logic to transform HTML to wikitext. See patch.
 * HtmlOutputRendererHelper - Helper for getting output of a given wikitext page rendered by Parsoid.
 * HtmlInputTransformHelper