私は、パラメータが定義されていない状況を処理したいと思います。変数が定義されていない場合、Muxが返しますか?
import (
// ...
"github.com/gorilla/mux"
)
func main() {
router := mux.NewRouter()
router.HandleFunc("/connect", Connect).Methods("POST")
log.Fatal(http.ListenAndServe(":7777", router))
}
// ...
func Connect(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
if params["password"] == nil {
fmt.Println("login without password")
} else {
fmt.Println("login with password")
}
}
また、私はこのために右の構文は何if !params["ssid"] {
を試してみましたか?
curl -H 'Content-Type: application/json' -d '{"ssid":"wifi"}' -X POST http://localhost:7777/connect
ssid
が必要とされているが、password
はオプションです:mux.Vars(r)
で
私はからポストのparamsを捕獲しようとしています。
params := mux.Vars(r)
password, ok := params["password"]
if ok {
// password is set
} else {
// password is not set
}
このコードは、マップ内のキーの存在を確認するためにthe two value index expressionを使用しています。
あなたはどのフレームワーク/ライブラリを使用していますか? mux.Varsは何を返しますか? – Howl
@CeriseLimónキャプチャしようとしているパラメータで質問を更新しました。 –
@Howl https://github.com/gorilla/muxを使用しています –