背景
现在搞的系统前后端分离,采用 restful 风格设计 API.
随着业务发展,出现了一个页面的数据需要请求多个接口,才能完整展示数据.
导致页面加载耗时很长.因此决定采用openresty 来并发请求客户端发送来的接口地址,再一次性返回多个接口的数据给前端.这样前端只需要请求服务端一次.还可以任意组装接口.
使用的框架是 laravel. 每一个接口地址都要指定请求方式才可以访问.
Lua语法
lua特殊点
1.默认变量,函数都是全局的.慎用.要用 local 修饰符.
2.字符串,数组下标是从1开始
一.数据类型
nil 空
一个变量未被赋值就是 nil
将 nil赋予给一个全局变量就等于删除它
boolean 布尔
lua 中 nil 和 false 为假.其他为真.0和空字符串也是真
number 数字
用于表示实数. math.floor向下取整. math.ceil 向上取整
string 字符串
lua 中字符串不能更改.也不能通过下标访问某个字符.
在 lua 中.两个完全一样的 lua 字符串在虚拟机中只会存储一份.
每一个字符串在创建时都会插入到 lua 虚拟机内部的一个全局的哈希表中.
table 表
table 类型实现了一种抽象的关联数组.
local corp = {
name = “kang”,
age = 20
}
function 函数
在 lua 中.函数也是一种数据类型.函数可以存储在变量中.通过参数传递给其他函数.汉可以作为函数的返回值.
local function foo()
local x=10;
local y=20;
return x+y;
end;
local a=foo;
a();
二.表达式
算术运算符
加+
减-
乘*
除/
指数^
取余%
关系运算符
小于<
大于>
小于等于<=
大于等于>=
等于==
不等于~=
逻辑运算符
与 and
或 or
非 not
字符连接
使用操作符 “..” (两个点).
如果其任意一个是数字的话.将会把这个数字转换为字符串.
也可以用 string 库的函数 string.format 连接字符串.
string.format(“%s-%s”,”hello”,”word”);
hello-word
推荐使用 table.concat()来进行字符串拼接.因为 lua 中字符串是只读的.连接操作会创建一个新的字符串.性能损耗大.
三.表达式
1.单个 if 分支
x=10
if x>0 then
print(x);
end;
2.两个分支 if-else
x=10
if x>0 then</