dump

dump #

描述 #

dump 过滤器是一个用于在终端打印 Dump 输出相关请求信息的过滤器,主要用于调试。

配置示例 #

一个简单的示例如下:

flow:
  - name: hello_world
    filter:
      - dump:
         uri: true
         request_header: true
         request_body: true
         response_body: true
         status_code: true

参数说明 #

dump 过滤器比较简单,在需要的流程处理阶段插入 dump 过滤器,即可在终端输出相应阶段的请求信息,方便调试。

名称类型说明
requestbool是否输出全部完整的请求信息
responsebool是否输出全部完整的返回信息
uribool是否输出请求的 URI 信息
query_argsbool是否输出请求的参数信息
userbool是否输出请求的用户信息
api_keybool是否输出请求的 APIKey 信息
request_headerbool是否输出请求的头信息
response_headerbool是否输出响应的头信息
status_codebool是否输出响应的状态码
contextarray输出自定义的上下文信息

输出上下文 #

可以使用 context 参数来调试请求上下文信息,示例配置文件:

flow:
  - name: echo
    filter:
      - set_response:
          status: 201
          content_type: "text/plain; charset=utf-8"
          body: "hello world"
      - set_response_header:
          headers:
            - Env -> Dev
      - dump:
          context:
            - _ctx.id
            - _ctx.tls
            - _ctx.remote_addr
            - _ctx.local_addr
            - _ctx.request.host
            - _ctx.request.method
            - _ctx.request.uri
            - _ctx.request.path
            - _ctx.request.body
            - _ctx.request.body_length
            - _ctx.request.query_args.from
            - _ctx.request.query_args.size
            - _ctx.request.header.Accept
            - _ctx.request.user
            - _ctx.response.status
            - _ctx.response.body
            - _ctx.response.content_type
            - _ctx.response.body_length
            - _ctx.response.header.Env

启动网关,执行如下命令:

curl http://localhost:8000/medcl/_search\?from\=1\&size\=100 -d'{search:query123}' -v -u 'medcl:123'

网关终端输出如下信息:

---- dumping context ---- 
_ctx.id  :  21474836481
_ctx.tls  :  false
_ctx.remote_addr  :  127.0.0.1:50925
_ctx.local_addr  :  127.0.0.1:8000
_ctx.request.host  :  localhost:8000
_ctx.request.method  :  POST
_ctx.request.uri  :  http://localhost:8000/medcl/_search?from=1&size=100
_ctx.request.path  :  /medcl/_search
_ctx.request.body  :  {search:query123}
_ctx.request.body_length  :  17
_ctx.request.query_args.from  :  1
_ctx.request.query_args.size  :  100
_ctx.request.header.Accept  :  */*
_ctx.request.user  :  medcl
_ctx.response.status  :  201
_ctx.response.body  :  hello world
_ctx.response.content_type  :  text/plain; charset=utf-8
_ctx.response.body_length  :  11
_ctx.response.header.Env  :  Dev