2016-12-07 12 views
0

私は、ポストリクエストがparams(/ url /:param)で動作するための特別なルートを作成する方法を見つけようとしています。net/http:http.HandleFuncカスタムパラメータを持つことは可能ですか?

私はこのような何か試してみた:

http.HandleFunc("/myroute/:myparam",myfunction)

を、私はreq.Formで側「のMyFunction」でHTTPリクエストのようのparamsを取得することができるようにホッピングされたが、それは失敗を続けています私は404'edを得る。

私は機能の本体で私のパラメータを渡すことができるので尋ねるのは奇妙なことだと認識していますが、使いやすさと表示のために静的な "ルート"のリストを事前に生成できるように求められていますそれは別のURL +の代わりに誰も+のparamsのための1つのURLのオプションのparamsとして配布することができるように、いくつかのプリセット..それはデフォルトMuxでは不可能ですが、あなたはhttprouterGorilla Muxまたはchiのような代替ルーターを使用することができます

答えて

2

。ここで

httprouter使い方の例です:

package main 

import (
    "fmt" 
    "github.com/julienschmidt/httprouter" 
    "net/http" 
) 

func Hello(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { 
    fmt.Fprintf(w, "hello, %s!\n", ps.ByName("name")) 
} 

func main() { 
    router := httprouter.New() 
    router.GET("/hello/:name", Hello) 
    http.ListenAndServe(":8080", router) 
} 
+0

'router.POSTでその仕事だろう:'(、こんにちは "/ハロー/名")?あなたがリストアップしたルータのどれをお勧めしますか? –

+0

@ Cam.phiefrそうです。 httrouterは最も効率的なルータの1つです。ベンチマークはhttps://github.com/julienschmidt/go-http-routing-benchmarkで見つけることができます。 – KAdot

関連する問題