by 糖果

Lapis可以定义Json格式的路由,Lapis本身,提供了JSON的解析机制,可以用json_params动作装饰器,想请求发过来的json数据,传self.parms变量中,代码如下:

local json_params = require("lapis.application").json_params
app:match("/json", json_params(function(self)
  return self.params.ip
end))

用Curl模拟请求:

$ curl \
  -H "Content-type: application/json" \
  -d '{"ip": "127.0.0.1"}' \
  'https://localhost:8080/json'

返回的JSON数据解析:

<!DOCTYPE HTML><html lang="en"><head><title>Lapis Page</title></head><body>127.0.0.1</body></html>

Lapis返回json数据一目了然,直接指定json关键字,然后赋予一个lua table的数据结构就好,如下:

local lapis = require("lapis")
local app = lapis.Application()

app:get("/", function()
  return "Welcome to Lapis " .. require("lapis.version")
end)

app:get("/world", function()
  return { json = { success = true, ip="127.0.0.1" } }
end)

return app