goland创建moudle,https://goproxy.cn
go代码:
package main
import (
"encoding/json"
"fmt"
"github.com/gorilla/mux"
"io/ioutil"
"log"
"net/http"
)
/*type rule struct {
ruleName string `json:"rule_name"`
ruleType string `json:"rule_type"`
ruleStatus string `json:"rule_status"`
pageSize int `json:"page_size"`
page int `json:"page"`
}*/
func requestRes(writer http.ResponseWriter, request *http.Request) {
//vars := mux.Vars(request)
//获取请求 request 的路由变量,返回 map [string]string
//var vars map[string]string = mux.Vars(request)
var req map[string]interface{}
body, _ := ioutil.ReadAll(request.Body)
//解码函数
//解析json编码的数据并将结果存入req指向的值
json.Unmarshal(body, &req)
fmt.Println(req)
//var name string = req["name"].(string)
ruleName := req["ruleName"].(string)
fmt.Println(ruleName)
ruleType := req["ruleType"].(string)
fmt.Println(ruleType)
ruleStatus := req["ruleStatus"].(string)
fmt.Println(ruleStatus)
pageSize := req["pageSize"].(float64)
fmt.Println(pageSize)
page := req["page"].(float64)
fmt.Println(page)
//响应
var res = map[string]string{"code": "1", "message": "ok", "body":"hello,word!"}
fmt.Println(res)
//编码函数
response, _ := json.Marshal(res)
writer.Header().Set("Content-Type", "application/json")
writer.WriteHeader(http.StatusOK)
writer.Write(response)
}
func main() {
//http://localhost:9090/v1/rule/get_rule
//方式一:http自带的
//HandleFunc 的第一个参数指的是请求路径,第二个参数是一个函数类型,表示这个请求需要处理的事情。
//http.HandleFunc("/v1/rule/get_rule", requestRes)
//创建监听端口
/*err := http.ListenAndServe("127.0.0.1:9090", nil)
if err != nil {
log.Fatal("ListenAndServe: ", err)*/
//方式二:使用mux框架
r := mux.NewRouter()
r.HandleFunc("/v1/rule/get_rule", requestRes).Methods("POST")
log.Fatal(http.ListenAndServe(":9090", r))
}
postman将前端数据提交到后端,后端相应传数据至前端