【问题标题】:Displaying line breaks in the response text在响应文本中显示换行符
【发布时间】:2017-05-24 15:24:09
【问题描述】:

我使用 Swagger UI v2.2.0。我有一个返回纯文本的 RESTful 方法。我想用换行符显示这个文本。

目前,返回的文本包含换行符,但它们显示为\nContent-Type 响应标头是 text/plain

我可以返回插入其他换行符的文本(例如,<br> 标记)。我也可以更改Content-Type。我只需要显示文本中的实际换行符。

有没有办法做到这一点?

【问题讨论】:

  • 您具体指的是使用 Swagger UI 工具呈现它,还是您可以灵活地使用其他工具呈现您的 Swagger(OpenAPI 规范)?
  • @busse 我使用 Swagger UI。我澄清了我的问题。

标签: swagger swagger-ui


【解决方案1】:

不确定是否有帮助,但我也遇到了同样的问题。

我想在nodejs服务器中执行以下代码:

app.post('/xyz', function (req, res) {
    res.status(400).send("MyError\nMyErrorStack:\nStackLine1\nStackline2")

}

并希望输出如下:

"MyError
MyErrorStack:
StackLine1
Stackline2"

但是得到了:

"MyError\nMyErrorStack:\nStackLine1\nStackline2"

所以我将字符串拆分为数组,如下所示:

err.error = errObj.stack.split("\n")

app.post('/xyz', function (req, res) {
    res.status(400).send(err)

}

这个打印出来了

"Error": {    
    "error": [
      "Error: ENOENT: no such file or directory, open 'c:\\....'",
      "    at Error (native)",
      "    at Object.fs.openSync (fs.js:584:18)",
      "    at Object.fs.writeFileSync (fs.js:1224:33)",
      "    at Object.fs.appendFileSync (fs.js:1283:6)",
      "    at ...",
      "    at ...",
      "    at ...",
      "    at ...",
      "    at ...",
      "    at ..."
    ]
}

这对我有用。

【讨论】:

    【解决方案2】:

    由于 Swagger UI 中记录的错误,这目前是不可能的。参考:

    Inconsistent Markdown Newlines #2981

    Bug in Model (Definition) Description with newline characters #3078

    列出的第二个问题 #3078 包含一些关于覆盖用于呈现该部分 UI 的样式的讨论,但结果似乎不一致。

    注意:我已订阅这些问题,并将在解决后更新答案和/或标记以关闭不再相关。

    【讨论】:

      猜你喜欢
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2016-07-15
      相关资源
      最近更新 更多