Class: MetadataController
Defined in: packages/core/src/metadata/metadata.controller.ts:23
MetadataController — serves the $metadata CSDL XML and OData service document.
Routes (relative to serviceRoot, e.g. '/odata'): GET /odata/$metadata → CSDL XML (Content-Type: application/xml) GET /odata → Service document JSON (Content-Type: application/json)
The controller uses @Controller() with no prefix because consumers mount it via ODataModule which sets the serviceRoot path. The routes use the serviceRoot path directly to ensure correct routing when integrated into a NestJS app.
Implementation uses a fixed serviceRoot-relative routing strategy: The @Controller() prefix is set to the serviceRoot and endpoints are '/$metadata' and '/' respectively. This is the most NestJS-idiomatic approach.
Constructors
Constructor
new MetadataController(
csdlBuilder,serviceDocumentBuilder,options):MetadataController
Defined in: packages/core/src/metadata/metadata.controller.ts:24
Parameters
csdlBuilder
serviceDocumentBuilder
options
Returns
MetadataController
Properties
options
readonlyoptions:ODataModuleOptions
Defined in: packages/core/src/metadata/metadata.controller.ts:27
Methods
getMetadata()
getMetadata():
string
Defined in: packages/core/src/metadata/metadata.controller.ts:37
GET {serviceRoot}/$metadata Returns OData v4 CSDL XML document. Content-Type: application/xml per OData spec.
Returns
string
getServiceDocument()
getServiceDocument():
object
Defined in: packages/core/src/metadata/metadata.controller.ts:48
GET {serviceRoot}/ (service document) Returns OData service document listing all available EntitySets. Content-Type: application/json per OData spec.
Returns
object