lapis http verb 处理

编程入门 行业动态 更新时间:2024-10-28 12:19:43

<a href=https://www.elefans.com/category/jswz/34/1693045.html style=lapis http verb 处理"/>

lapis http verb 处理

1. 同一个url 包含不同的请求(respond_to  进行解决)
// 路由格式 match ,通过respond_to 进行实际的http verb 处理local lapis = require("lapis")
local respond_to = require("lapis.application").respond_to
local app = lapis.Application()app:match("create_account", "/create-account", respond_to({GET = function(self)return { render = true }end,POST = function(self)do_something(self.params)return { redirect_to = self:url_for("index") }end
}))备注 respond_to 可以包含一个before 的filter 进行一个格外的权限,参数处理
如下:
app:match("edit_user", "/edit-user/:id", respond_to({before = function(self)self.user = Users:find(self.params.id)if not self.user thenself:write({"Not Found", status = 404})endend,GET = function(self)return "Edit account " .. self.user.nameend,POST = function(self)self.user:update(self.params.user)return { redirect_to = self:url_for("index") }end
}))
2. 明确指明请求的http verb
如下:app:get("/test", function(self)return "I only render for GET requests"
end)app:delete("/delete-account", function(self)-- do something destructive
end)
3. http verb 请求的过滤(before filter )
// 全局控制
app:before_filter(function(self)if not user_meets_requirements() thenself:write({redirect_to = self:url_for("login")})end
end)
// respond_to 添加,例子参考上面的
4. http  request && response API 参考
比较多,参考文档 .html#routes-and-url-patterns/route-precedence
主要是一些 session cookies url  处理
5. http  render 参数
参考格式
app:match("/", function(self)return { render = "error", status = 404}
end)参数选项
status —  http 状态码
render —  渲染的模板名称
content_type — 内容类型
headers —  http  header 参数
json —  指定返回的数据是json 格式的,既 content_type  application/json
layout —  指定渲染使用的模板,可以全局设置
redirect_to —  设置重定向类型 301 302 。。。
5. 默认请求处理 (默认路由)
function app:default_route()ngx.log(ngx.NOTICE, "User hit unknown path " .. self.req.parsed_url.path)-- call the original implementaiton to preserve the functionality it providesreturn lapis.Application.default_route(self)
end
6. 异常错误处理
function app:handle_error(err, trace)if config.custom_error_page thenreturn { render = "my_custom_error_page" }elsereturn lapis.Application.handle_error(self, err, trace)end
end
7. 参考文档
.html#routes-and-url-patterns/route-precedence

更多推荐

lapis http verb 处理

本文发布于:2024-02-17 06:36:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1693035.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:lapis   http   verb

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!