问题描述:
楼主之前是使用PHP的,这几个月在学习go,最近在使用Gin开发过程中遇到了一个问题,在生成restful 风格Api时,往往需要重复书写路由例如
admin.GET("/menuList", webMenu.List)
admin.POST("/menu", webMenu.Add)
admin.DELETE("/menu/:id", webMenu.Delete)
admin.PUT("/menu/:id", webMenu.Edit)
admin.GET("/menu/:id", webMenu.Get)
在PHP的Laravel 框架中路由中有一个Router::resource 代表可以直接创建restful 风格的接口,直接针对资源增删改查,非常的语义化,这样就大大简化了Router文件的书写过程。然而gin中路由定义只有GET,POST,DELETE,PATCH,PUT,OPTIONS,没有Resource 为此我查看了一下github.com\gin-gonic\gin@v1.9.0\routergroup.go 下的文件各个方法的定义,实现方式大差不差。
解决方案:
由于水平有限,只能依葫芦画瓢试着模仿一下,我这是属于更改了routergroup.go文件了,具体实现方法是
//新增一个Resource 接口,让我们的Service实现这个接口
type Resource interface {
List(*Context)
Get(*Context)
Add(*Context)
Edit(*Context)
Delete(*Context)
}