Skip to content

referencing #/components/schema when they don't exist #780

Description

@mariusflorescu

Prerequisites

  • I have written a descriptive issue title
  • I have searched existing issues to ensure the issue has not already been raised

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.

Activity

  1. Tony133 commented on Sep 10, 2026

    @Tony133
    Member

    Closing this as a duplicate of #675 / #639, which track support for JSON Schema definitions. Please follow those issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions