feature: supported to run the mini case.

```
curl http://test.com:9080/hello
run route id: 1234 host: test.com
```
This commit is contained in:
Yuansheng Wang 2019-04-11 14:34:18 +08:00
parent e083f9be46
commit 25b2bc84cd
2 changed files with 17 additions and 6 deletions

View File

@ -4,6 +4,7 @@ local log = require("apimeta.comm.log")
local resp = require("apimeta.comm.resp") local resp = require("apimeta.comm.resp")
local route_handler = require("apimeta.route.handler") local route_handler = require("apimeta.route.handler")
local ngx_req = ngx.req local ngx_req = ngx.req
local ngx_var = ngx.var
local _M = {} local _M = {}
@ -25,7 +26,8 @@ function _M.access()
end end
api_ctx.method = api_ctx.method or ngx_req.get_method() api_ctx.method = api_ctx.method or ngx_req.get_method()
api_ctx.uri = api_ctx.uri or ngx.var.uri api_ctx.uri = api_ctx.uri or ngx_var.uri
api_ctx.host = api_ctx.host or ngx_var.host
local router = route_handler.get_router() local router = route_handler.get_router()
local ok = router:dispatch(api_ctx.method, api_ctx.uri, api_ctx) local ok = router:dispatch(api_ctx.method, api_ctx.uri, api_ctx)

View File

@ -13,19 +13,28 @@ local _M = {}
function _M.get_router() function _M.get_router()
if router == nil then if router == nil then
log.warn("generate a empty router instance") log.warn("generate a empty router instance")
return _M.load({ {methods = {"GET"}, uri = "/hello", router_id = "xx"} })
-- todo: only for test now
return _M.load_route({
{
methods = {"GET"},
uri = "/hello",
host = "test.com",
id = 1234,
},
})
end end
return router return router
end end
local function run_route(params, route, ...) local function run_route(params, route, api_ctx)
ngx.say("run route") ngx.say("run route id: ", route.id, " host: ", api_ctx.host)
end end
function _M.load(routes) function _M.load_route(routes)
if router then if router then
router:tree_free() router:tree_free()
router = nil router = nil
@ -37,7 +46,7 @@ function _M.load(routes)
route.methods, route.methods,
route.uri, route.uri,
function (params, ...) function (params, ...)
return run_route(params, router, ...) return run_route(params, route, ...)
end end
} }
end end