openapi-to-graphql icon indicating copy to clipboard operation
openapi-to-graphql copied to clipboard

Correctly defined 204 will return Response does not have a Content-Type header

Open dtrunk90 opened this issue 3 years ago • 0 comments

Describe the bug Based on https://swagger.io/docs/specification/describing-responses/ (Empty Response Body) the definition for 204 should look like this:

{
  ...,
  "paths": {
    "/tests": {
      "get": {
        "tags": [
          "test-controller"
        ],
        "operationId": "getTests",
        "parameters": [...],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Test"
                  }
                }
              }
            }
          },
          "204": {
            "description": "Empty list"
          },
          "502": {
            "description": "Invalid Response",
            "content": {
              "application/json": {}
            }
          },
          "504": {
            "description": "No Response",
            "content": {
              "application/json": {}
            }
          }
        }
      }
    }
  },
  ...
}

But in that case I get the following error:

{
  "data": null,
  "errors": [
    {
      "extensions": {
        "code": "INTERNAL_SERVER_ERROR"
      },
      "locations": [
        {
          "column": 17,
          "line": 1
        }
      ],
      "message": "Response does not have a Content-Type header",
      "path": [
        "tests"
      ]
    }
  ]
}

There's indeed no Content-Type header since there's no Content.

To Reproduce Steps to reproduce the behavior: See above

Expected behavior No error should occur

dtrunk90 avatar Nov 25 '22 14:11 dtrunk90