在Go中开发REST api时,我们如何使用路径参数?意思是说URI的格式是什么?
http://localhost:8765/myapp/{param1}/entries/{param2}
我尝试使用类似这样的东西来创建路由但是没有调用处理函数。
请注意,我打算只使用net / http软件包,而不是像gorilla mux这样的任何其他Web框架。
答案 0 :(得分:1)
我倾向于做的是嵌套处理程序。 “/”由根处理程序处理。它弹出路径的第一部分,将其余部分分配回req.URL.Path
(实际上像StripPrefix
),确定哪个处理程序通过该前缀处理路由(如果有的话),然后链接适当的处理程序。如果该处理程序需要从路径中解析一个ID,它可以通过相同的机制 - 弹出路径的第一部分,根据需要解析它,然后执行。
这不仅没有外部依赖性,而且比任何路由器都快,因为路由是硬编码而不是动态。除非在运行时路由更改(这很不寻常),否则无需动态处理路由。
答案 1 :(得分:0)