spacewander commented on a change in pull request #6487:
URL: https://github.com/apache/apisix/pull/6487#discussion_r818233930



##########
File path: t/plugin/http-logger2.t
##########
@@ -32,6 +32,64 @@ add_block_preprocessor(sub {
         $block->set_value("no_error_log", "[error]");
     }
 
+    my $http_config = $block->http_config // <<_EOC_;
+    server {
+        listen 12001;
+
+        location /http-logger/test {
+            content_by_lua_block {
+                ngx.say("test-http-logger-response")
+            }
+        }
+
+        location /http-logger/center {
+            content_by_lua_block {
+                local function str_split(str, reps)
+                    local str_list = {}
+                    string.gsub(str, '[^' .. reps .. ']+', function(w)
+                        table.insert(str_list, w)
+                    end)
+                    return str_list
+                end
+
+                local args = ngx.req.get_uri_args()
+                local query = args.query or nil
+                ngx.req.read_body()
+                local body = ngx.req.get_body_data()
+
+                if query then
+                    if type(query) == "string" then
+                        query = {query}
+                    end
+
+                    local data, err = require("cjson").decode(body)
+                    if err then
+                        ngx.log(ngx.ERR, "logs:", body)
+                    end
+
+                    for i = 1, #query do
+                        local fields = str_split(query[i], ".")
+                        local val
+                        for j = 1, #fields do
+                            local key = fields[j]
+                            if j == 1 then
+                                val = data[key]
+                            else
+                                val = val[key]
+                            end
+                        end
+                        ngx.log(ngx.ERR ,query[i], ":", val)

Review comment:
       Better to use WARN log level

##########
File path: t/plugin/http-logger2.t
##########
@@ -141,3 +199,86 @@ GET /opentracing
 --- no_error_log
 removing batch processor stale object
 --- wait: 1.5
+
+
+
+=== TEST 6: set fetch request body and response body route
+--- config
+    location /t {
+        content_by_lua_block {
+            local t = require("lib.test_admin").test
+            local code, body = t('/apisix/admin/routes/1',
+                 ngx.HTTP_PUT,
+                 [[{
+                        "methods": ["POST"],
+                        "plugins": {
+                            "http-logger": {
+                                "uri": 
"http://127.0.0.1:12001/http-logger/center?query[]=request.body&query[]=response.body";,
+                                "batch_max_size": 1,
+                                "max_retry_count": 1,
+                                "retry_delay": 2,
+                                "buffer_duration": 2,
+                                "inactive_timeout": 2,
+                                "include_req_body": true,
+                                "include_resp_body": true
+                            }
+                        },
+                        "upstream": {
+                            "nodes": {
+                                "127.0.0.1:12001": 1
+                            },
+                            "type": "roundrobin"
+                        },
+                        "uri": "/http-logger/test"
+                }]],
+                [[{

Review comment:
       We should remove the response body check




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to