2019-04-10 11:08:25 +08:00
|
|
|
-- Copyright (C) Yuansheng Wang
|
|
|
|
|
2019-04-11 12:02:16 +08:00
|
|
|
local log = require("apimeta.comm.log")
|
|
|
|
local resp = require("apimeta.comm.resp")
|
|
|
|
local route_handler = require("apimeta.route.handler")
|
2019-04-11 14:36:53 +08:00
|
|
|
local ngx = ngx
|
2019-04-11 12:02:16 +08:00
|
|
|
local ngx_req = ngx.req
|
2019-04-11 14:34:18 +08:00
|
|
|
local ngx_var = ngx.var
|
2019-04-11 12:02:16 +08:00
|
|
|
|
2019-04-10 11:08:25 +08:00
|
|
|
local _M = {}
|
|
|
|
|
|
|
|
function _M.init()
|
2019-04-11 12:02:16 +08:00
|
|
|
|
2019-04-10 11:08:25 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
function _M.init_worker()
|
2019-04-11 12:02:16 +08:00
|
|
|
require("apimeta.route.load").init_worker()
|
2019-04-10 11:08:25 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
function _M.access()
|
2019-04-11 12:02:16 +08:00
|
|
|
local ngx_ctx = ngx.ctx
|
|
|
|
local api_ctx = ngx_ctx.api_ctx
|
|
|
|
|
|
|
|
if api_ctx == nil then
|
|
|
|
api_ctx = {}
|
|
|
|
ngx_ctx.api_ctx = api_ctx
|
|
|
|
end
|
|
|
|
|
|
|
|
api_ctx.method = api_ctx.method or ngx_req.get_method()
|
2019-04-11 14:34:18 +08:00
|
|
|
api_ctx.uri = api_ctx.uri or ngx_var.uri
|
|
|
|
api_ctx.host = api_ctx.host or ngx_var.host
|
2019-04-11 12:02:16 +08:00
|
|
|
|
|
|
|
local router = route_handler.get_router()
|
|
|
|
local ok = router:dispatch(api_ctx.method, api_ctx.uri, api_ctx)
|
|
|
|
if not ok then
|
|
|
|
log.warn("not find any matched route")
|
|
|
|
resp(403)
|
|
|
|
end
|
2019-04-10 11:08:25 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
function _M.header_filter()
|
2019-04-11 12:02:16 +08:00
|
|
|
|
2019-04-10 11:08:25 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
function _M.log()
|
2019-04-11 12:02:16 +08:00
|
|
|
|
2019-04-10 11:08:25 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
return _M
|