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