Prerequisites
Issue
I'm using a TS to JSON schema generator that basically creates JSON files with definitions of various API responses.
When running the script to generate the OpenAPI file, some reference #/components/schema/*, which doesn't exist since the schema is empty.
I don't know honestly if this is because of #675.
export const options: RouteShorthandOptions = {
schema: {
summary: "Some Summary",
description: "Returns a list of items",
params: GetItemsParamsSchema,
response: {
200: ItemListResponseSchema,
},
},
}
Where ItemListReponseSchema.json looks like this:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/ItemListResponse",
"definitions": {
"ItemListResponse": {
"type": "array",
"items": {
"$ref": "#/definitions/Item"
}
},
"Item": {
"type": "object",
"properties": {
// some properties
},
"required": [
// some required properties
],
"additionalProperties": false
}
}
}
The generated openAPI spec file:
components:
schemas: {}
# ... other things
responses:
"200":
description: Default Response
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Item"
definitions:
Item:
type: object
properties:
# some properties
The workaround I found is to manually add the components: {schema: {}}, but this is quite inconvenient.
Prerequisites
Issue
I'm using a TS to JSON schema generator that basically creates JSON files with definitions of various API responses.
When running the script to generate the OpenAPI file, some reference
#/components/schema/*, which doesn't exist since the schema is empty.I don't know honestly if this is because of #675.
Where
ItemListReponseSchema.jsonlooks like this:{ "$schema": "http://json-schema.org/draft-07/schema#", "$ref": "#/definitions/ItemListResponse", "definitions": { "ItemListResponse": { "type": "array", "items": { "$ref": "#/definitions/Item" } }, "Item": { "type": "object", "properties": { // some properties }, "required": [ // some required properties ], "additionalProperties": false } } }The generated openAPI spec file:
The workaround I found is to manually add the
components: {schema: {}}, but this is quite inconvenient.