-- 仅允许 GET 请求 if ngx.req.get_method() ~= "GET" then ngx.status = ngx.HTTP_NOT_ALLOWED ngx.header["Content-Type"] = "application/json" ngx.say('{"error":"Method not allowed, only GET is supported."}') return ngx.exit(ngx.HTTP_NOT_ALLOWED) end -- 固定的设备映射表 local device_list = { { deviceId = "400500001", deviceName = "主所牵引变压器"}, { deviceId = "400500002", deviceName = "主所供电变压器"}, { deviceId = "400500002", deviceName = "主所供电变压器"}, { deviceId = "400500003", deviceName = "动力变压器"}, { deviceId = "400500003", deviceName = "动力变压器"}, { deviceId = "400500004", deviceName = "牵引变压器"}, { deviceId = "400500004", deviceName = "牵引变压器"}, { deviceId = "400500005", deviceName = "断路器1"}, { deviceId = "400500005", deviceName = "断路器1"}, { deviceId = "400500006", deviceName = "断路器"}, { deviceId = "400500006", deviceName = "断路器"}, { deviceId = "400500007", deviceName = "隔离开关"}, { deviceId = "400500007", deviceName = "隔离开关"}, { deviceId = "400500008", deviceName = "手动隔离开关"}, { deviceId = "400500008", deviceName = "手动隔离开关"}, { deviceId = "400500009", deviceName = "电容"}, { deviceId = "400500009", deviceName = "电容"}, { deviceId = "400500010", deviceName = "避雷器接地"}, { deviceId = "400500010", deviceName = "避雷器接地"}, { deviceId = "400500011", deviceName = "手车"}, { deviceId = "400500011", deviceName = "手车"}, { deviceId = "400500012", deviceName = "箭头"}, { deviceId = "400500012", deviceName = "箭头"}, { deviceId = "400500013", deviceName = "备自投"}, { deviceId = "400500013", deviceName = "备自投"}, { deviceId = "400500014", deviceName = "避雷器"}, { deviceId = "400500014", deviceName = "避雷器"}, { deviceId = "400500015", deviceName = "互感器"}, { deviceId = "400500015", deviceName = "互感器"}, { deviceId = "400500016", deviceName = "互感器1"}, { deviceId = "400500016", deviceName = "互感器1"}, { deviceId = "400500017", deviceName = "互感器2"}, { deviceId = "400500017", deviceName = "互感器2"}, { deviceId = "400500018", deviceName = "接地"}, { deviceId = "400500018", deviceName = "接地"}, { deviceId = "400500019", deviceName = "本所遥控权限"}, { deviceId = "400500019", deviceName = "本所遥控权限"}, { deviceId = "400500020", deviceName = "软压板"}, { deviceId = "400500020", deviceName = "软压板"}, { deviceId = "400501001", deviceName = "233kV交流母线"}, { deviceId = "400501002", deviceName = "27.5KV交流母线"}, { deviceId = "400501003", deviceName = "228V交流母线"}, { deviceId = "400501004", deviceName = "233kV交流馈线"}, { deviceId = "400501005", deviceName = "27.5kV交流馈线"}, { deviceId = "400501006", deviceName = "228V交流馈线"}, { deviceId = "400501007", deviceName = "回流母线"}, { deviceId = "400501008", deviceName = "电分相"}, { deviceId = "400500022", deviceName = "主所牵引变压器"}, { deviceId = "400500023", deviceName = "主所供电变压器"}, { deviceId = "400500024", deviceName = "动力变压器"}, { deviceId = "400500025", deviceName = "牵引变压器"}, { deviceId = "400500026", deviceName = "断路器1"}, { deviceId = "400500027", deviceName = "断路器"}, { deviceId = "400500028", deviceName = "隔离开关"}, { deviceId = "400500029", deviceName = "手动隔离开关"}, { deviceId = "400500030", deviceName = "电容"}, { deviceId = "400500031", deviceName = "避雷器接地"}, { deviceId = "400500032", deviceName = "手车"}, { deviceId = "400500033", deviceName = "箭头"}, { deviceId = "400500034", deviceName = "备自投"}, { deviceId = "400500035", deviceName = "避雷器"}, { deviceId = "400500036", deviceName = "互感器"}, { deviceId = "400500037", deviceName = "互感器1"}, { deviceId = "400500038", deviceName = "互感器2"}, { deviceId = "400500039", deviceName = "接地"}, { deviceId = "400500040", deviceName = "本所遥控权限"}, { deviceId = "400500041", deviceName = "软压板"}, { deviceId = "400501009", deviceName = "233kV交流母线"}, { deviceId = "400501010", deviceName = "27.5KV交流母线"}, { deviceId = "400501011", deviceName = "228V交流母线"}, { deviceId = "400501012", deviceName = "233kV交流馈线"}, { deviceId = "400501013", deviceName = "27.5kV交流馈线"}, { deviceId = "400501014", deviceName = "228V交流馈线"}, { deviceId = "400501015", deviceName = "回流母线"}, { deviceId = "400501016", deviceName = "电分相"} } -- 获取查询参数 ?count=xx local count = tonumber(ngx.var.arg_count) or #device_list if count > #device_list then count = #device_list end -- 构造返回数据 local devices = {} for i = 1, count do local device = device_list[i] table.insert(devices, { dataId = device.deviceId, id = device.deviceId, dataName = device.deviceName, value = math.random(0, 1), }) end -- 输出 JSON ngx.header.content_type = "application/json; charset=utf-8" local cjson = require("cjson.safe") ngx.say(cjson.encode(devices))