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



##########
File path: t/core/request.t
##########
@@ -378,3 +378,41 @@ nil
 t
 --- no_error_log
 [error]
+
+
+
+=== TEST 11: get_post_args
+--- config
+    location = /hello {
+        real_ip_header X-Real-IP;
+
+        set_real_ip_from 0.0.0.0/0;
+        set_real_ip_from ::/0;
+        set_real_ip_from unix:;

Review comment:
       Do we need the real_ip stuff?

##########
File path: apisix/core/ctx.lua
##########
@@ -175,6 +175,20 @@ do
                     end
                 end
 
+            elseif core_str.has_prefix(key, "post_arg_") then
+                -- only match default post form
+                if request.header(nil, "Content-Type") == 
"application/x-www-form-urlencoded" then

Review comment:
       Let's add a new section in 
https://github.com/apache/apisix/blob/master/docs/en/latest/router-radixtree.md

##########
File path: t/node/vars.t
##########
@@ -299,3 +299,87 @@ GET /hello?k=uri_arg
 hello world
 --- no_error_log
 [error]
+
+
+
+=== TEST 17: set route(only post arg)
+--- 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,
+                [=[{
+                    "uri": "/hello",
+                    "vars": [["post_arg_k", "==", "post_form"]],
+                    "upstream": {
+                        "nodes": {
+                            "127.0.0.1:1980": 1
+                        },
+                        "type": "roundrobin"
+                    }
+                }]=]
+                )
+
+            if code >= 300 then
+                ngx.status = code
+            end
+            ngx.say(body)
+        }
+    }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 18: /not_found
+--- request
+GET /hello
+--- error_code: 404
+--- response_body
+{"error_msg":"404 Route Not Found"}
+--- no_error_log
+[error]
+
+
+
+=== TEST 19: /not_found

Review comment:
       Should use different names for consequential different tests

##########
File path: t/core/request.t
##########
@@ -378,3 +378,41 @@ nil
 t
 --- no_error_log
 [error]
+
+
+
+=== TEST 11: get_post_args
+--- config
+    location = /hello {
+        real_ip_header X-Real-IP;
+
+        set_real_ip_from 0.0.0.0/0;
+        set_real_ip_from ::/0;
+        set_real_ip_from unix:;
+
+        access_by_lua_block {
+            local core = require("apisix.core")
+            local ngx_ctx = ngx.ctx
+            local api_ctx = ngx_ctx.api_ctx
+            if api_ctx == nil then
+                api_ctx = core.tablepool.fetch("api_ctx", 0, 32)
+                ngx_ctx.api_ctx = api_ctx
+            end
+
+            core.ctx.set_vars_meta(api_ctx)
+        }
+        content_by_lua_block {

Review comment:
       Look like we can put the thing from access_by_lua_block into 
content_by_lua_block

##########
File path: t/core/request.t
##########
@@ -378,3 +378,41 @@ nil
 t
 --- no_error_log
 [error]
+
+
+
+=== TEST 11: get_post_args
+--- config
+    location = /hello {
+        real_ip_header X-Real-IP;
+
+        set_real_ip_from 0.0.0.0/0;
+        set_real_ip_from ::/0;
+        set_real_ip_from unix:;

Review comment:
       Do we need the real_ip stuff?

##########
File path: apisix/core/ctx.lua
##########
@@ -175,6 +175,20 @@ do
                     end
                 end
 
+            elseif core_str.has_prefix(key, "post_arg_") then
+                -- only match default post form
+                if request.header(nil, "Content-Type") == 
"application/x-www-form-urlencoded" then

Review comment:
       Let's add a new section in 
https://github.com/apache/apisix/blob/master/docs/en/latest/router-radixtree.md

##########
File path: t/node/vars.t
##########
@@ -299,3 +299,87 @@ GET /hello?k=uri_arg
 hello world
 --- no_error_log
 [error]
+
+
+
+=== TEST 17: set route(only post arg)
+--- 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,
+                [=[{
+                    "uri": "/hello",
+                    "vars": [["post_arg_k", "==", "post_form"]],
+                    "upstream": {
+                        "nodes": {
+                            "127.0.0.1:1980": 1
+                        },
+                        "type": "roundrobin"
+                    }
+                }]=]
+                )
+
+            if code >= 300 then
+                ngx.status = code
+            end
+            ngx.say(body)
+        }
+    }
+--- request
+GET /t
+--- response_body
+passed
+--- no_error_log
+[error]
+
+
+
+=== TEST 18: /not_found
+--- request
+GET /hello
+--- error_code: 404
+--- response_body
+{"error_msg":"404 Route Not Found"}
+--- no_error_log
+[error]
+
+
+
+=== TEST 19: /not_found

Review comment:
       Should use different names for consequential different tests

##########
File path: t/core/request.t
##########
@@ -378,3 +378,41 @@ nil
 t
 --- no_error_log
 [error]
+
+
+
+=== TEST 11: get_post_args
+--- config
+    location = /hello {
+        real_ip_header X-Real-IP;
+
+        set_real_ip_from 0.0.0.0/0;
+        set_real_ip_from ::/0;
+        set_real_ip_from unix:;
+
+        access_by_lua_block {
+            local core = require("apisix.core")
+            local ngx_ctx = ngx.ctx
+            local api_ctx = ngx_ctx.api_ctx
+            if api_ctx == nil then
+                api_ctx = core.tablepool.fetch("api_ctx", 0, 32)
+                ngx_ctx.api_ctx = api_ctx
+            end
+
+            core.ctx.set_vars_meta(api_ctx)
+        }
+        content_by_lua_block {

Review comment:
       Look like we can put the thing from access_by_lua_block into 
content_by_lua_block




-- 
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: notifications-unsubscr...@apisix.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to