IBM / openapi-to-graphql

Translate APIs described by OpenAPI Specifications (OAS) into GraphQL

Home Page:https://developer.ibm.com/open/projects/openapi-to-graphql/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

dtrunk90 opened this issue · 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