components
Holds a set of reusable objects for different aspects of the OAS. All objects defined within the components object will have no effect on the API unless they are explicitly referenced from properties outside the components object.
These are the types of components:
- schemas
- responses
- parameters
- examples
- requestBodies
- headers
- securitySchemes
- links
- callbacks
- pathItems (added in OAS 3.1)
Named components map
Components are defined using named map keys.
The following example shows named schemas User
and Organization
:
components:
schemas:
User:
type: object
properties:
email:
type: string
format: email
name:
type: string
Organization:
type: object
properties:
name:
type: string
dateFounded:
type: string
format: date
address:
type: object
properties:
streetLine1:
type: string
streetLine2:
type: string
streetLine3:
type: string
city:
type: string
state:
type: string
zip:
type: string
country:
type: string
Then, use components with a $ref
(reference object).
components:
schemas:
# ...
Job:
type: object
properties:
title:
type: string
startDate:
type: string
format: date
person:
$ref: '#/components/schemas/User'
The reference object enables reuse.
The components object is a convenient place to store objects for reuse within a single file. You can also reference other files or even remote URLs. Read more about that in Redocly's reference objects guide.
Visuals
See the individual component types for visuals.
Types
- Components
- NamedParameters
- NamedSchemas
- NamedResponses
- NamedExamples
- NamedRequestBodies
- NamedHeaders
- NamedSecuritySchemes
- NamedLinks
- NamedCallbacks
const Components: NodeType = {
properties: {
parameters: 'NamedParameters',
schemas: 'NamedSchemas',
responses: 'NamedResponses',
examples: 'NamedExamples',
requestBodies: 'NamedRequestBodies',
headers: 'NamedHeaders',
securitySchemes: 'NamedSecuritySchemes',
links: 'NamedLinks',
callbacks: 'NamedCallbacks',
},
};