vertx-web icon indicating copy to clipboard operation
vertx-web copied to clipboard

openapi-router: Unsupported media type "application/octet-stream" but OpenApi 3.1.0 supports it

Open sebveit opened this issue 7 months ago • 4 comments

Version

io.vertx:vertx-web-openapi-router <= 4.5.9

Context

I encountered an exception which looks suspicious because the media type application/octet-stream is legit. io.vertx.openapi.contract.OpenAPIContractException: The passed OpenAPI contract contains a feature that is not supported: Operation createBinary defines a request body with an unsupported media type. Supported: application/json, application/json; charset=utf-8, multipart/form-data, application/hal+json

Here is a migration guide on what has changed between OpenAPI 3.0 and 3.1: https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0

Steps to reproduce

Have a openapi-contract.yml with the following snippet:

/api/v1/binary/{binaryId}:
  put:
    operationId: createBinary
    parameters:
      - name: binaryId
        in: path
        required: true
        schema:
          type: string
          pattern: '^[0-9a-f]{64}$'
    requestBody:
      required: true
      content:
        application/octet-stream: {}
    responses:
      '201':
        description: Resource created and stored on disk
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResourceRefBasedUponHash'
      '409':
        description: Resource already exists

sebveit avatar Jul 25 '24 14:07 sebveit