http獲取get引數過濾

sendwarm發表於2021-03-01

r.URL.Query()
localhost:3000/about?name=111&b...
這個可以獲取到map型別的所有引數
map[11:[] bb:[121,11] name:[111]]

vars := r.URL.Query()
        arr := map[string]interface{}{}
        for k,v := range vars{
            str := v[0]
            if str != "" {
                arr[k] = v[0]
            }
        }
        fmt.Println(arr)
  • 上述中可以簡單地把有效引數獲取整理到arrmap中
  • 但是時機中如有地址引數使用者可以隨機更改,不一定都是我們需要的資料
  • 所以我有如下更改
    student := map[string]interface{}{}
          student["name"] = map[string]interface{}{"max": 11, "min": 2, "type": "int"}
          student["age"] = map[string]interface{}{"max": 11, "min": 2, "type": "int"}
          arr := map[string]interface{}{}
          for k, v := range vars {
              _, ok := student[k]
              if ok {
                  str := &v[0]
                  if *str != "" {
                      arr[k] = *str
                  }
              }
          }
          fmt.Println(arr)
    從中如果我們得知該路由下我們需要的引數只有name和age時,過濾其他字元,其中每個欄位裡面的max,type等等還沒有寫,這塊我們可以把引數驗證也加進去
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章