RouterSpecs
The routes of a service and their OpenAPI document.
The route catalog (toRouteCatalog) is built once, from the routeContributors, and generates no schema. The document is rendered from it once, generating the schemas and components with componentContext; mergeOpenAPI merges copies of it and may be called concurrently.
The queryable fields each aggregated query request body names (x-wow-query-fields) are those of the aggregate's state, from Wow's type inference, unless the query schema sources are given: then they are the fields those sources declare, as the query schema Catalog merges them.
Constructors
Routes whose aggregated query request bodies list the fields querySchemaSources declare, merged under querySensitivity: the sources and policy the application's query schema Catalog compiles, so the document names the fields its queries accept. Storage facts are not read; what the storage supports for each field is the query capability descriptor's.
Functions
Builds the route catalog. No schema is generated: that happens when the OpenAPI document is rendered.
Renders the document now, unless it is rendered already. Call it at startup when the OpenAPI document is served: rendering generates the schemas, which may block (it infers query fields), so it must not run on a request thread. Later mergeOpenAPI calls only copy the rendered document and never block.
Merges the routes into openAPI: its info, a fresh copy of the path item and operations of every route, the tags, and the schemas and components the routes reference.
The route catalog the router dispatches by.