Kong Gateway 修改原始碼完成自定義錯誤返回

AR414發表於2020-10-11

背景

最近在部署一套基於kong的閘道器係統,kong預設的錯誤和kong中外掛的提示返回不符合制定的開發統一規範.

通過查閱官方文件以及官方Github issue發現只有修改kong lua 原始碼才能滿足開發需求

Tips: Response Transformer Plugins 無法滿足開發需求

環境

Kong Version:5.1

作者部署方式

  1. docker-compose
  2. 通過volumes對映已修改的 kong lua dir
    ...
    volumes:
    - ./kong:/usr/local/share/lua/5.1/kong/  
    ... 

解決

閘道器錯誤提示欄位

預設返回的錯誤提示欄位為message

{"message": "some error tips"}

需要將message修改為error

{"error": "some error tips"}

具體修改

file:/usr/local/share/lua/5.1/kong/tools/utils.lua
line:1105 ~ 1130

路由不存在錯誤提示

預設返回

{
  "message": "no Route matched with those values"
}

修改為

message 在上一步已經修改為 error

{
  "error": "Route not found"
}

file1: /usr/local/share/lua/5.1/kong/runloop/handler.lua
line: 1096

file2: /usr/local/share/lua/5.1/kong/plugins/acme/api.lua
line: 78

結語

還有一些外掛的提示,這裡就不展開說了,可根據需求自行調整

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章