lua-resty-stack
Openresty 简单应用栈
$ opm get antonheryanto/lua-resty-stack
lua-resty-stack
Openresty 简单应用栈
Beta 质量,已投入生产使用
描述
基于 REST 的应用栈
待办事项
更多测试
用户自定义路由模块/:id/action
安装
下载或克隆此仓库
将 lib/resty/stack.lua 复制到 (Openresty 路径)/lualib/resty/ 或 (应用路径)/resty
如何使用
推荐的应用文件夹结构
conf
nginx.conf
resty
stack.lua
post.lua -- 可选,用于高级后处理,例如表单数据、JSON 和文件上传
template.lua -- 可选,用于模板覆盖渲染
api
config.lua
app.lua
hello.lua
`nginx.conf daemon off; master process off; error_log log/error.log warn; event {} http { client_body_temp_path logs; fastcgi_temp_path logs; proxy_temp_path logs; scgi_temp_path logs; uwsgi_temp_path logs; init_by_lua_file "api/app.lua"; lua_code_cache off; server { listen 127.0.0.1:8080; location /api { content_by_lua_block { local app = require 'api.app' app:run() } } } }
config.lua
```lua
return {
debug = true,
redis = { host = '127.0.0.1', port = 6379 },
}
app.lua
local stack = require 'resty.stack'
local config = require 'api.config'
local app = stack:new(config)
app:service ({ api = {
'hello'
}})
return app
hello.lua
local _M = {}
function _M.get(self)
return "get Hello"
end
function _M.post(self)
return "post Hello"
end
function _M.delete(self)
return "delete Hello"
end
return _M
$ nginx -p .
方法
new
语法:app = stack:new(config)
使用配置参数初始化新的栈应用
use
语法:app:use(path, fn)
注册函数或模块
path
与函数匹配的路由 URL 路径。如果 path 是函数,则 path 为当前位置
fn
访问路径时执行的函数
service
语法:app:service(services)
使用 Lua 表格注册服务
services
要加载的服务表格
run
语法:app:run()
运行应用
authorize
语法:function app.authorize(self) end
实现授权函数以保护模块
render
语法:function app.render(self) end
实现可插拔渲染以覆盖默认渲染
begin_request
语法:function app.begin_request(self) end
实现请求开始钩子
end_request
语法:function app.end_request(self) end
实现请求结束钩子
版权和许可
此模块在 BSD 许可证下授权。
版权所有 (C) 2014 - 2015,作者 Anton Heryanto <anton.heryanto@gmail.com>。
保留所有权利。
在满足以下条件的情况下,允许以源代码和二进制形式重新分发和使用,无论是否修改:
源代码的重新分发必须保留上述版权声明、此条件列表以及以下免责声明。
二进制形式的重新分发必须在随分发提供的文档和/或其他材料中复制上述版权声明、此条件列表以及以下免责声明。
本软件由版权持有人和贡献者“按原样”提供,并且不提供任何明示或暗示的担保,包括但不限于适销性和特定用途适用性的暗示担保。在任何情况下,版权持有人或贡献者均不对任何直接、间接、附带、特殊、惩罚性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润损失;或业务中断)负责,无论这些损害是基于合同、严格责任或侵权(包括疏忽或其他原因)产生的,即使已被告知此类损害的可能性。
另请参阅
作者
Anton Heryanto
许可证
2bsd
版本
-
Openresty 简单应用栈 2016-10-01 04:12:24