我试图找到一种方法来创建特殊路由,这样就可以使用params(/ url /:param)来发布请求。
我尝试过这样的事情:
http.HandleFunc("/myroute/:myparam",myfunction)
我正在跳跃,以便能够获得旁边的http请求中的params" myfunction"使用req.Form
,但它继续在我身上失败,我得到了404&#39。编辑。
我认识到这是一个奇怪的问题因为我可以在函数体中传递我的参数,但是为了便于使用/显示,我被要求能够预生成一个静态列表&#34 ;路线"在一些预设上,以便它可以作为不同的网址+可选的参数分配,而不是每个人+参数的一个网址..
答案 0 :(得分:3)
默认DECLARE sqlCMD VARCHAR(500);
SET @sqlCMD =
'SELECT * FROM OPENQUERY(PASON, ''SELECT * FROM MyTable WHERE MyPrimaryKey=''''' + @Variable + ''''''')')
EXEC (@sqlCMD);
无法使用,但您可以使用其他路由器,例如httprouter,Gorilla Mux或chi。
以下是Mux
用法的示例:
httprouter
答案 1 :(得分:0)
您可以在/
上定义一个handle函数,然后对路径进行自定义解析,例如拆分/
字符。
http.HandleFunc("/", dispatcher)
这样,您的处理程序将接受所有内容,并且您可以将请求手动路由到相应的函数。例如,PUT调用在资源(/orders/2
)之后需要一些参数
logs.Info("The URL that you are calling is: " + req.URL.Path)
输出:The URL that you are calling is: /orders/2
您还可以执行以下操作:
http.HandleFunc("/orders/", dispatcher)
缩小处理程序的范围。这样,您可以保留对Go http软件包路径的资源部分的验证。