OpenAPITools / OpenAPITools/openapi-generator

[BUG] Description

Open
#11,090 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue: Bug
Dominant language
Java
Stars
26.8k
Forks
7.7k
PR merge metrics
PR metrics pending

Description

Bug Report Checklist
  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

I have an OpenAPI specification for which I want to generate code. No matter, which backend I use, the generator always complains about validation errors as follows:

Exception in thread "main" org.openapitools.codegen.SpecValidationException: There were issues with the specification. The option can be disabled via validateSpec (Maven/Gradle) or --skip-validate-spec (CLI).
 | Error count: 4, Warning count: 0
Errors: 
	-attribute paths.'/resources/v1/modeler/documents/CheckoutTicket'(put).responses.200.content.'application/json'.schema.#/components/x-schemas/MultiFileResultDownloadTicket is missing
	-attribute paths.'/resources/v1/modeler/documents/CheckoutTicket'(put).responses.200.content.'application/json'.schema.#/components/x-definitions/RESULTS-DownloadTicket is missing
	-attribute paths.'/resources/v1/modeler/documents/CheckoutTicket'(put).requestBody.content.'application/json'.schema.#/components/x-schemas/downloadticketinput is missing
	-attribute paths.'/resources/v1/modeler/documents/CheckoutTicket'(put).requestBody.content.'application/json'.schema.#/components/x-schemas/multifiledownloadticketinput is missing

	at org.openapitools.codegen.config.CodegenConfigurator.toContext(CodegenConfigurator.java:554)
	at org.openapitools.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:581)
	at org.openapitools.codegen.cmd.Generate.execute(Generate.java:433)
	at org.openapitools.codegen.cmd.OpenApiGeneratorCommand.run(OpenApiGeneratorCommand.java:32)
	at org.openapitools.codegen.OpenAPIGenerator.main(OpenAPIGenerator.java:66)

The document validates with the above-mentioned validator at apidevtools without problems.

openapi-generator version

docker latest version corresponding to commit c94d2b2

OpenAPI declaration file content or url
{
  "openapi": "3.0.0",
  "info": {
    "title": "Document REST Services",
    "description": "REST Services for managing the Document modeler.",
    "version": "1.1.3",
    "x-ds-service": [
      "3DSpace"
    ]
  },
  "servers": [
    {
      "url": "{3DSpace}",
      "variables": {
        "3DSpace": {
          "default": "https://3dspace.mydomain:443/3DSpace"
        }
      }
    }
  ],
  "paths": {
    "/resources/v1/modeler/documents/CheckoutTicket": {
      "put": {
        "description": "",
        "summary": "Lock and get the checkout tickets for the given documents",
        "tags": [
          "FCS"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "example": "Request will be passed with oneOf mask available in the Schema Tab.",
                "oneOf": [
                  {
                    "$ref": "#/components/x-schemas/downloadticketinput"
                  },
                  {
                    "$ref": "#/components/x-schemas/multifiledownloadticketinput"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A JSON object containing Checkout information",
            "content": {
              "application/json": {
                "schema": {
                  "example": "Response will be returned with oneOf mask available in the Schema Tab.",
                  "oneOf": [
                    {
                      "$ref": "#/components/x-definitions/RESULTS-DownloadTicket"
                    },
                    {
                      "$ref": "#/components/x-schemas/MultiFileResultDownloadTicket"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
          },
          "401": {
            "$ref": "#/components/responses/401"
          },
          "403": {
            "$ref": "#/components/responses/403"
          },
          "500": {
            "$ref": "#/components/responses/500"
          }
        },
        "parameters": [
          {
            "$ref": "#/components/parameters/SecurityContext"
          },
          {
            "$ref": "#/components/parameters/Accept-Language"
          },
          {
            "$ref": "#/components/parameters/ENO_CSRF_TOKEN"
          },
          {
            "$ref": "#/components/parameters/zipFiles"
          }
        ]
      }
    }
  },
  "components": {
    "x-schemas": {
      "ownerInfo": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "184182566B5300005FFD3FF400074CFC"
              },
              "type": {
                "type": "string",
                "example": "Person"
              },
              "cestamp": {
                "type": "string",
                "example": "18418256A75C000060FFED41001627C4"
              },
              "dataelements": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "VPLMAdminUser1"
                  },
                  "firstname": {
                    "default": "Unknown",
                    "type": "string",
                    "example": "AdminUser1"
                  },
                  "lastname": {
                    "default": "Unknown",
                    "type": "string",
                    "example": "VPLM"
                  },
                  "email": {
                    "default": "Unknown",
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "originatorInfo": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "184182566B5300005FFD3FF400074CFC"
              },
              "type": {
                "type": "string",
                "example": "Person"
              },
              "cestamp": {
                "type": "string",
                "example": "18418256A75C000060FFED41001627C4"
              },
              "dataelements": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "VPLMAdminUser"
                  },
                  "firstname": {
                    "type": "string",
                    "example": "AdminUser"
                  },
                  "lastname": {
                    "type": "string",
                    "example": "VPLM"
                  },
                  "email": {
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "parentId": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/BASICS"
          }
        ]
      },
      "parents": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/BASICS"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "revision": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "synopsis": {
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  },
                  "firstname": {
                    "description": "the person's first name - only applies when the object is a Person",
                    "default": "Unknown",
                    "type": "string"
                  },
                  "lastname": {
                    "description": "the person's last name - only applies when the object is a Person",
                    "default": "Unknown",
                    "type": "string"
                  },
                  "fullname": {
                    "description": "the person's full name - only applies when the object is a Person",
                    "default": "Unknown",
                    "type": "string"
                  },
                  "objectId": {
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  },
                  "policy": {
                    "description": "required to support state NLS",
                    "type": "string"
                  },
                  "stateNLS": {
                    "type": "string"
                  },
                  "typeNLS": {
                    "type": "string"
                  },
                  "collabSpace": {
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  },
                  "ownerFullname": {
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  },
                  "hasfiles": {
                    "description": "determines whether the object has a file checked in any format",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "fileExtension": {
                    "description": "the extension of the file.",
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "relelements": {
                "type": "object",
                "properties": {
                  "originated": {
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "properties": {
              "relateddata": {
                "type": "object",
                "properties": {
                  "relOwnerInfo": {
                    "x-IncludedByDefault:": "no",
                    "type": "array",
                    "items": {
                      "$ref": "#/components/x-schemas/relOwnerInfo"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "relOwnerInfo": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/BASICS"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "firstname": {
                    "default": "Unknown",
                    "type": "string"
                  },
                  "lastname": {
                    "default": "Unknown",
                    "type": "string"
                  },
                  "email": {
                    "default": "Unknown",
                    "x-IncludedByDefault:": "no",
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      },
      "DownloadTicket": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/DOWNLOAD-BASICS"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "ticketURL": {
                    "description": "The URL to retrieve the file from the FCS server.",
                    "example": "https://3dspace.mydomain:453/fcs/servlet/fcs/checkout?__fcs__jobTicket=QEBlbnZlbG9wQEBmY3NrZXlfM2ZkYTAxZTBhNDhmMDE1OEBAdGFyZ2V0QEBmY3NrZXlfM2ZkYTAxZTBhNDhmMDE1OEBAc291cmNlQ"
                  },
                  "fileName": {
                    "description": "If single file is being downloaded then this field will appear.",
                    "example": "Filename.docx"
                  }
                }
              }
            }
          }
        ]
      },
      "MultiFileResultDownloadTicket": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/success"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "csrf": {
                    "$ref": "#/components/x-definitions/csrf"
                  },
                  "ticketURL": {
                    "description": "The URL to retrieve the file from the FCS server.",
                    "example": "https://3dspace.mydomain:453/fcs/servlet/fcs/checkout?__fcs__jobTicket=QEBlbnZlbG9wQEBmY3NrZXlfM2ZkYTAxZTBhNDhmMDE1OEBAdGFyZ2V0QEBmY3NrZXlfM2ZkYTAxZTBhNDhmMDE1OEBAc291cmNlQ"
                  },
                  "fileNames": {
                    "description": "If multiple files are being downloaded then this field will appear.",
                    "type": "array",
                    "items": {
                      "type": "string",
                      "example": "[FileName.docx, FileName.xlsx]"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "CheckoutTicket": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/DOWNLOAD-BASICS"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "ticketURL": {
                    "description": "The URL to retrieve the file from the FCS server.",
                    "example": "https://3dspace.mydomain:453/fcs/servlet/fcs/checkout?__fcs__jobTicket=QEBlbnZlbG9wQEBmY3NrZXlfM2ZkYTAxZTBhNDhmMDE1OEBAdGFyZ2V0QEBmY3NrZXlfM2ZkYTAxZTBhNDhmMDE1OEBAc291cmNlQ"
                  },
                  "fileName": {
                    "type": "object",
                    "description": "If single file is being checked out then this field will appear.",
                    "example": "Filename.docx"
                  }
                }
              }
            }
          }
        ]
      },
      "downloadticketinput": {
        "type": "object",
        "required": [
          "csrf",
          "data"
        ],
        "properties": {
          "csrf": {
            "$ref": "#/components/x-definitions/csrf"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "example": "{id: 86818256F97100006110D1A7001E2FCA}"
                }
              }
            }
          }
        }
      },
      "multifiledownloadticketinput": {
        "type": "object",
        "required": [
          "csrf",
          "data"
        ],
        "properties": {
          "csrf": {
            "$ref": "#/components/x-definitions/csrf"
          },
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "example": "{id:86818256F97100006110D1A7001E2FCA},{id:86818256F97100006110D1B8000CF3F0}"
                }
              }
            }
          }
        }
      },
      "versions": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/BASICS"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "title": {
                    "description": "the file name.",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Required), Read (Yes), Modify (No)"
                  },
                  "name": {
                    "description": "The name of the file object.",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Yes), Read (Yes), Modify (No)"
                  },
                  "comments": {
                    "description": "the comments associated with the file checkin operation.",
                    "type": "string"
                  },
                  "locker": {
                    "description": "The locker user name if the file is locked.",
                    "type": "string",
                    "readOnly": true
                  },
                  "fileType": {
                    "default": " ",
                    "type": "string"
                  },
                  "dimension": {
                    "type": "string"
                  },
                  "length": {
                    "type": "string",
                    "example": "10.0"
                  },
                  "revision": {
                    "description": "The revision of the document object.",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Yes), Read (Yes), Modify (No)",
                    "example": "1"
                  },
                  "originated": {
                    "description": "the originated date of the file.",
                    "type": "string",
                    "readOnly": true,
                    "example": "2021-08-09T06:44:07.000Z"
                  },
                  "modified": {
                    "description": "the last modified date of the file.",
                    "type": "string",
                    "readOnly": true,
                    "example": "2021-08-09T13:12:46.000Z"
                  },
                  "receipt": {
                    "description": "The FCS receipt for supporting the file operation; takes precedence over the one provided with the document.",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Yes), Read (No), Modify (No)"
                  },
                  "keepLocked": {
                    "description": "Keeps the file locked after a checkin process.",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Yes), Read (No), Modify (No)"
                  },
                  "format": {
                    "description": "Override the default format for the checkin process",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Yes), Read (No), Modify (No)"
                  },
                  "store": {
                    "description": "Override the default store for the checkin process",
                    "type": "string",
                    "x-ApplicableOperations": "Create (Yes), Read (No), Modify (No)"
                  },
                  "fileObjectId": {
                    "description": "The file object id.",
                    "x-IncludedByDefault:": "no",
                    "type": "string",
                    "readOnly": true
                  },
                  "fileSize": {
                    "description": "The file size in bytes.",
                    "type": "string",
                    "example": 1210
                  }
                },
                "required": [
                  "title"
                ]
              }
            },
            "required": [
              "title"
            ]
          },
          {
            "type": "object",
            "properties": {
              "relateddata": {
                "type": "object",
                "properties": {
                  "ownerInfo": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/x-schemas/ownerInfo"
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "sovaccess": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/BASICS"
          },
          {
            "type": "object",
            "properties": {
              "dataelements": {
                "type": "object",
                "properties": {
                  "orgnization": {
                    "type": "string"
                  },
                  "project": {
                    "type": "string"
                  },
                  "person": {
                    "type": "string"
                  },
                  "access": {
                    "type": "string"
                  },
                  "comment": {
                    "type": "string"
                  }
                }
              }
            }
          }
        ]
      }
    },
    "x-definitions": {
      "RESULTS-DownloadTicket": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/success"
          },
          {
            "type": "object",
            "properties": {
              "csrf": {
                "$ref": "#/components/x-definitions/csrf"
              },
              "data": {
                "type": "array",
                "items": {
                  "$ref": "#/components/x-schemas/DownloadTicket"
                }
              }
            }
          }
        ]
      },
      "RESULTS-EMPTY": {
        "allOf": [
          {
            "$ref": "#/components/x-definitions/success"
          },
          {
            "type": "object",
            "properties": {
              "csrf": {
                "$ref": "#/components/x-definitions/csrf"
              }
            }
          }
        ]
      },
      "BASICS": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique object identifier.",
            "type": "string",
            "example": "18418256E7550000612343A300129F6C"
          },
          "type": {
            "description": "The object type.",
            "type": "string",
            "example": "Document"
          },
          "identifier": {
            "description": "The unique object identifier when an object is represented by a Public URI.",
            "type": "string",
            "example": "18418256495900006102323D0004A2F4"
          },
          "source": {
            "description": "The object server URL when an object is represented by a Public URI.",
            "example": "https://3dspace.mydomain:443/3dspace",
            "type": "string"
          },
          "relativePath": {
            "description": "The object resource path when an object is represented by a Public Resource URI.",
            "example": "/resources/v1/modeler/documents/18418256793A000060F6D26900140DB8",
            "type": "string"
          }
        }
      },
      "DOWNLOAD-BASICS": {
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique object identifier.",
            "example": "86818256F97100006110D1A7001E2FCA",
            "type": "string"
          }
        }
      },
      "csrf": {
        "description": "CSRF object is required to be sent back for update operations and typically provided with read operations.",
        "type": "object",
        "properties": {
          "name": {
            "description": "The CSRF token name.",
            "example": "ENO_CSRF_TOKEN",
            "type": "string"
          },
          "value": {
            "description": "The CSRF token value.",
            "example": "EXAM-PLEW-R1CD-BNF7-G8UC-KT52-MGUA-UBE1",
            "type": "string"
          }
        }
      },
      "success": {
        "description": "The response data when the request succeeds with 200 status code.",
        "type": "object",
        "properties": {
          "success": {
            "description": "Reflects true to indicate successful request.",
            "example": true,
            "type": "boolean"
          },
          "statusCode": {
            "description": "The HTTP response code.",
            "example": 200,
            "type": "integer"
          }
        }
      },
      "error-400": {
        "description": "The response data when the request fails with 400 or 500 error. The request could not be understood by the server due to malformed syntax/invalid data",
        "type": "object",
        "properties": {
          "success": {
            "description": "Reflects false to indicate failure.",
            "example": false,
            "type": "boolean"
          },
          "statusCode": {
            "description": "The HTTP response code.",
            "example": 400,
            "type": "integer"
          },
          "error": {
            "description": "An NLS error message.  In the case of a 400 error, the message is precise.  In the case of 500 error, the message is generic.",
            "example": "Error: Invalid Business Object Specified"
          },
          "internalError": {
            "description": "The technical reason of the failure - usually associated with a 500 error; this is not an NLS message and reflects the MQL or runtime exception.",
            "example": "Message:Business Object Does Not Exist Severity:2 ErrorCode:4000036"
          }
        }
      },
      "error-401": {
        "description": "The request requires user authentication.",
        "type": "object",
        "properties": {
          "success": {
            "description": "Reflects false to indicate failure.",
            "example": false,
            "type": "boolean"
          },
          "statusCode": {
            "description": "The HTTP response code.",
            "example": 401,
            "type": "integer"
          },
          "error": {
            "description": "An NLS error message.  In the case of a 400 error, the message is precise.  In the case of 500 error, the message is generic.",
            "type": "string"
          },
          "internalError": {
            "description": "The technical reason of the failure - usually associated with a 500 error; this is not an NLS message and reflects the MQL or runtime exception.",
            "type": "string"
          }
        }
      },
      "error-403": {
        "description": "The response data when the request fails with 400 or 500 error.",
        "type": "object",
        "properties": {
          "success": {
            "description": "Reflects false to indicate failure.",
            "example": false,
            "type": "boolean"
          },
          "statusCode": {
            "description": "The HTTP response code.",
            "example": 403,
            "type": "integer"
          },
          "error": {
            "description": "An NLS error message.  In the case of a 400 error, the message is precise.  In the case of 500 error, the message is generic.",
            "example": "Unauthorized Access Error"
          },
          "csrf": {
            "type": "object",
            "properties": {
              "name": {
                "example": "ENO_CSRF_TOKEN"
              },
              "value": {
                "example": "3OUI-DWWJ-IUYC-3FSD-T235-NUCP-38WK-AYT7"
              }
            }
          }
        }
      },
      "error-500": {
        "description": "A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.",
        "type": "object",
        "properties": {
          "success": {
            "description": "Reflects false to indicate failure.",
            "example": false,
            "type": "boolean"
          },
          "statusCode": {
            "description": "The HTTP response code.",
            "example": 500,
            "type": "integer"
          },
          "error": {
            "description": "An NLS error message.  In the case of a 400 error, the message is precise.  In the case of 500 error, the message is generic.",
            "type": "string"
          },
          "internalError": {
            "description": "The technical reason of the failure - usually associated with a 500 error; this is not an NLS message and reflects the MQL or runtime exception.",
            "type": "string"
          }
        }
      }
    },
    "responses": {
      "200": {
        "description": "Success",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/x-definitions/RESULTS-EMPTY"
            }
          }
        }
      },
      "400": {
        "description": "Bad Request.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/x-definitions/error-400"
            }
          }
        }
      },
      "401": {
        "description": "Authentication Issue",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/x-definitions/error-401"
            }
          }
        }
      },
      "403": {
        "description": "CSRF Issue",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/x-definitions/error-403"
            }
          }
        }
      },
      "500": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/x-definitions/error-500"
            }
          }
        }
      }
    },
    "parameters": {
      "SecurityContext": {
        "name": "SecurityContext",
        "description": "Role.Organization.CollabSpace value e.g.VPLMProjectLeader.MyCompany.Default",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "Accept-Language": {
        "name": "Accept-Language",
        "description": "Identifies the locale for the web request.",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "ENO_CSRF_TOKEN": {
        "name": "ENO_CSRF_TOKEN",
        "description": "CSRF token that required for update operations. You can get it from 3DSpace/resources/v1/application/CSRF",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "include": {
        "name": "$include",
        "description": "Identify sub-resources that should be returned by the web request.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "fields": {
        "name": "$fields",
        "description": "Identify resource and sub-resource fields that should be returned by the web request.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "zipFiles": {
        "name": "zipFiles",
        "description": "To download more than one selected file in .zip format.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        },
        "example": false
      },
      "top": {
        "name": "$top",
        "description": "Represents the total number of items returned from the search, accepts a maximum value of 1000. The default value is 50.",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        }
      },
      "skip": {
        "name": "$skip",
        "description": "Represents the number of items to skip (to be used along with $top query parameter).",
        "in": "query",
        "required": false,
        "schema": {
          "type": "string"
        }
      }
    }
  }
}

Generation Details

docker run --rm -v ~/local:/local openapitools/openapi-generator-cli generate -i /local/bookmarks.openapi.json -g cpp-qt-client -o /local/out

The actual generator doesn't matter.

Steps to reproduce

Invoke above command on a Linux shell.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the validation stack trace in CodegenConfigurator.java, then follow the path through Generate.java, OpenApiGeneratorCommand.java, and OpenAPIGenerator.java. Compare how the reported $ref paths under components/x-schemas and components/x-definitions are resolved against the supplied specification. Done means reproducing the validator discrepancy and documenting or correcting the confirmed generator behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
api, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.