Scalatra 路由机制全解析
1. 方法重写
在实际的 Web 开发中,客户端对 HTTP 标准的支持往往并不完美。许多浏览器仅支持 HTTP 方法中的 GET 和 POST 子集,这对于仅需获取页面和提交表单数据的浏览器来说是足够的。但随着 Web API 和网站之间的界限变得模糊,这种支持就显得不足了。
为了解决这个问题,人们开发了各种临时解决方案。一种流行的方法是在 POST 请求中查找特殊的 _method 参数。如果存在该参数,则根据该参数来解释请求。以下是一个示例代码:
class RecordStore extends ScalatraServlet {
delete("/artists/:name") {
if (Artist.delete(params("name")).isDefined)
NoContent()
else
NotFound()
}
post("/item") {
params.get("method") match {
case Some("delete") =>
if (Artist.delete(params("name")).isDefined)
NoContent()
else
NotFound()
case None =>
val artist = parseArtist(request)
Artist.save(artist)
超级会员免费看
订阅专栏 解锁全文
1

被折叠的 条评论
为什么被折叠?



