Forum Discussion

sgh's avatar
New Contributor
5 years ago

How to add Properties[] properties in @Schema annotation?



Objective: I want multiple file-select buttons on swagger UI to upload a files as a request parts of a multipart request.


The following swagger config would do what I want/need:


"requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file_a": {
                    "type": "string",
                    "format": "binary"
                  "file_b": {
                    "type": "string",
                    "format": "binary"

Question: How can I use @Schema annotation (or any other) to generate such a swagger config?


Using annotation, this is as far as I get:


            requestBody = @RequestBody(
                    content = @Content(
                            mediaType = MediaType.MULTIPART_FORM_DATA_VALUE,
                            schema = @Schema(
                                    type = "object"
                                    // -> properties[] is missing !!!

@Schema does not seem to provide an means to add an properties[].


What am I missing? :(




2 Replies

  • MarioRe's avatar
    New Contributor

    I'm pretty sure you could do something along of

    @Content(schema = @Schema(implementation = fileaandfileb.class))

     while fileaandfileb has filea and fileb as members

    • sgh's avatar
      New Contributor

      Hi. Thanks for the hint. I am aware of this possibility. I would consider this a "workaround" not a real solution.


      OpenAPI reference describes the multipart upload as stated in the post above.


      So I would assume, that the swagger annotation would allow me in some way to declare something that results in a correct openapi JSON ?