|
var time = import("time")
var fmt = import("fmt")
var http = import("net/http")
var json = import("encoding/json")
var io = import("io")
var ioutil = import("io/ioutil")
//跨域开启,此段不需要修改
func openky(w){
w.Header().Set("Content-Type", "Application/json")
w.Header().Set("Access-Control-Allow-Origin", "http://localhost:8080") //允许访问所有域
w.Header().Set("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS")
w.Header().Set("Access-Control-Allow-Headers", "x-requested-with,content-type")
w.Header().Set("Access-Control-Expose-Headers", "Access-Control-Allow-Headers, Token")
w.Header().Set("Access-Control-Allow-Credentials", "true")
}
//请求接口 RestApi是接口名称,可以修改为你们自己的接口名称
http.HandleFunc("/RestApi", func(w, r) {
//此处加上跨域请求,每个接口都要先调用这个函数。
openky(w);
fmt.Println("RestApi 接口")
//构建返回的接口,格式为json格式,ISM的Go虚拟机语法,定义变量可以直接用变量赋值
//不需要var声明。不能使用 := 去赋值
//切记结构体的成员变量首字母一定要大写。
//获取到值后的回复变量
ResponseData = map[string]interface{}
//失败后的消息返回变量
FailedResponseData = map[string]interface{}
//通过GetDeviceData函数把系统采集到数据赋值给结构体变量
//m1是测试的设备名称,register0和register1是m1设备下面的两个数据名称
//ResponseData["Register0"] = GetDeviceData("m1->register0")
//ResponseData["Register1"] = GetDeviceData("m1->register1")
//可以自己按照接口要求返回特定格式,此段代码返回的格式
//{
// "Code": -2,
// "Msg": "设备值获取错误",
// "ResponseData": {
// "Register0": 0,
// "Register1": 0
// }
//}
params = r.URL.Query()
fmt.Println( params.Get("page11")==""?"true":"false")
fmt.Println(params.Get("perPage"))
datasend = make([]struct {
Engine string,
Browser string,
Platform string,
Version string,
Grade string,
BadgeText string,
Id int
},10)
for i=0;i<10;i++{
datasend[i].Engine = "sd"
datasend[i].Browser = "sd"
datasend[i].Platform = "sd"
datasend[i].Version = "sd"
datasend[i].Grade = "sd"
datasend[i].BadgeText = "sd"
datasend[i].Id = 1
}
ResponseData["data"] = map[string]interface{}
ResponseData["data"]["count"]=10
ResponseData["data"]["rows"]=datasend
ResponseData["status"]=0
ResponseData["msg"]="ok"
//把数据转化为json格式json.Marshal函数是把一个任意变量转为json格式
responseJsonData,err = json.Marshal(ResponseData)
if err!= nil{
FailedResponseData["Code"]=-1
FailedResponseData["Msg"]="JSON格式转换失败"
responseJsonData,_ = json.Marshal(FailedResponseData)
//通过w.Write函数把数据通过http协议的GET或者POST方式返回
w.Write(toString(responseJsonData))
}else{
//通过w.Write函数把数据通过http协议的GET或者POST方式返回
w.Write(toString(responseJsonData))
}
})
//18091监听的端口,可以根据需要更改
fmt.Println("API接口服务已经启动,提供了ApiDemo")
http.ListenAndServe(":18089", nil)
|
|