Skip to content

How to add example in an API response without losing Schema #2479

Closed
@ianwallen

Description

@ianwallen

How to add example in an API response without losing the Schema?

This case is based on Java Map object for Json representation.

i.e. if I use the following
@ApiResponse(responseCode = "200", description = "OK")

I get the following correct response

"responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "object"
                  }
                }
              }
            }
          }

But if I modify the @ApiResponse to add an example using the following

@ApiResponse(responseCode = "200", description = "OK",
			content = @Content(examples = {@ExampleObject(value = "{\"Key\": \"Value\"}")})
	)

Then the response object is now incorrect.

"responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "example": {
                  "Key": "Value"
                }
              }
            }
          }
        }

The Schema gets removed.

So - how would I add a example to the existing @ApiResponse without losing the schema? Is this a bug?

I have created a unit test in the following branch for app51.
https://github.com/ianwallen/springdoc-openapi/tree/how_to_add_example_response_json

It produced the following error.

java.lang.AssertionError: paths./test5.post.responses.200.content.application/json
Expected: schema
     but none found

Thank you

Metadata

Metadata

Assignees

No one assigned

    Labels

    invalidThis doesn't seem right

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions