美文网首页Java工程师之路API网关Kong实践笔记
Kong-06 在网关层修改response内容

Kong-06 在网关层修改response内容

作者: 国服最坑开发 | 来源:发表于2019-08-04 11:45 被阅读1次
  • 场景: 对于已经提供服务的接口,需要临时添加一个通用的返回信息.比如接口的url信息等.
  • 对策: 这种需求属于业务无关的,而且是比较固定的参数,可以考虑放在网关(kong)层,进行处理.
  • 关于: 此案例中, 我们为一个特定的router 添加一个response transformer插件, 可以在后端服务把结果返回到用户前,修改其BODY,HEAD参数.
  • 前提:请参考本站前文,完成一个基本的接口服务,并在konga上配置一个ServiceRoute.
    response-1.png
    • 本文使用的Java代码:
@RestController
@SpringBootApplication
public class UserApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }

    @RequestMapping(value = "/v1/user/get", produces = "application/json")
    public String hello(){
        JSONObject obj = new JSONObject();
        obj.put("msg","Hi, man");
        return JSON.toJSONString(obj);
    }
}
  • 启用新插件之前的接口访问结果:


    response-2.png

1. 配置插件

我们打开待配置的Route画面,选择ADD PLUGIN 增加一个插件

response-3.png

插件类型为: Transformations中的Response Transformer, 意思就是用于响应结果的格式修改.

response-4.png

在本插件的设置画面,我们这里,参考下图, 在 add栏中的jsonheader中,分别增加一些键值对, 注意,每添加一组参数需要手动回车, 参数才能生效.

response-5.png
提交后, 可以在插件列表页, 点击此插件上的 眼睛 图标,查看本次设定内容:
response-6.png .

2.验证效果

  • BODY 验证
    首先,我们在浏览器里验证, 可以发现返回结果里已经出现了我们在网关里增加的参数信息了.

    response-7.png
  • HEADER验证
    在命令行中, 使用curl -i xxx (Mac环境) ,在返回的信息中可以看到, HEADER中也正常出现了我们添加的 头部信息.

    response-8.png

到此, 我们展示了, 如何通过网关服务来动态修改我们的返回结果. 对于已经上线的服务修改需求, 会带来意想不到的便利.

相关文章

网友评论

    本文标题:Kong-06 在网关层修改response内容

    本文链接:https://www.haomeiwen.com/subject/kcgedctx.html