【问题标题】:How can I replace Kong Error to a custom text?如何将 Kong Error 替换为自定义文本?
【发布时间】:2022-07-24 06:35:26
【问题描述】:

孔错误

超出 API 速率限制。

如何将 Kong 错误替换为自定义文本,例如“PoC 错误”?

【问题讨论】:

标签: kong


【解决方案1】:

此解决方案并不理想,但目前它正在工作,直到出现更好的解决方案(可能来自 kong)。所有插件和内部都存在自定义错误消息的问题。

我创建了一个全局后置函数 (serverless-functions),它检查状态码是否高于 400 并拦截响应。

在“body-phase”处理程序的顶部定义了一个包含所有要拦截的错误的静态定义表。

问题在于 kong 错误看起来并不总是相同,因为它们通过查看响应中的“Content-Type”标头来生成错误消息。 我的解决方案是使用与模板生成相同的工具 (kong.utils) 并使用不同的消息填充我的错误表。

首先,在“标头阶段”中,我检查响应代码。如果它高于 400,我清除“Content-Length”标头(必需)并为下一阶段设置一个标志(例如 kong.ctx.custom_error)以指示需要拦截。

其次,在“正文阶段”中,我检查标志并将响应正文与我生成的错误表相匹配。如果找到匹配项,则响应正文将被预定义的错误消息覆盖。

出于性能考虑,我通过将覆盖主体的处理程序返回到 kong 来记忆“主体阶段”中的表格。目前,kong 将在加载时生成表一次,如果发生请求,则只会调用返回的函数。

希望我能在一定程度上解释它并进一步帮助

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 2022-08-19
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    相关资源
    最近更新 更多