0

我使用 Swagger OAS3 并尝试在应该返回图像的端点失败时显示详细的错误消息。当我将成功响应的 MIME 类型设置为image/png时,如果抛出错误,则不会出现 *Response 正文。如果我将其更改为application/json,它会出现,但我们期望的实际成功响应是图像,而不是 json。所以我不确定这是否是正确的方法!

响应正文未出现错误

如果我在成功响应中添加两种 MIME 类型,并在执行前选择 json,它会再次出现。但它从不响应我为失败响应添加的 MIME 类型。

                    final ObjectNode responses = httpMethod.putObject("responses");
                    final ObjectNode success = responses.putObject("200");
                    success.put(DESCRIPTION, "Success");
                    final ObjectNode content = success.putObject("content");

                    final ObjectNode mime = content.putObject(IMAGE_PNG);
                    final ObjectNode schema = mime.putObject(SCHEMA);
                    schema.put("type", "string");
                    schema.put("format", "binary");

                    final ObjectNode mimeTextFail = content.putObject(APPLICATION_JSON);
                    final ObjectNode schemaTextfail = mimeTextFail.putObject(SCHEMA);
                    schemaTextfail.put("type", OBJECT);


                    final ObjectNode fail = responses.putObject("401");
                    fail.put(DESCRIPTION, "Error: Unauthorized");
                    final ObjectNode contentfail = fail.putObject("content");
                    final ObjectNode mimefail = contentfail.putObject(APPLICATION_JSON);
                    final ObjectNode schemafail = mimefail.putObject(SCHEMA);
                    schemafail.put("type", OBJECT);

这是不可能的还是我做错了?非常感谢任何帮助。

(如果我删除所有 MIME 类型,则会出现响应正文,但默认格式为 html,我无法将其更改为 JSON,除非如上所述指定对 json 的成功响应的 MIME 类型。)

4

0 回答 0