Golang中国

go resource

支持gin,echo批量路由

这个简单的代码,能够使代码更加容易整理与编写,使代码更加美观

并且使你脱离在编码时对函数应该叫什么的苦恼

原来我们这么写代码

e.Get("/", GetArticle)
e.Post("/", SaveArticle)
e.Delete("/", RemoveArticle)

有了它之后,你只需要,就拥有了所有操作

resource.Resource(e, "/",  &Test{})

如果不够用,欢迎补充

批量路由对应关系

method url handler desc
GET / Index 获取列表
POST / Store 创建记录
GET /1123 Show 展示记录/详情
GET /create Create 创建页面/创建展示页面
GET /1123/edit Edit 编辑页面/编辑展示页面
PUT /1123 Update 修改记录
DELETE /1123 Destroy 删除记录

安装

 go get github.com/goless/resource

echo

import resource "less/base/resource/echo"

func main() {
    e := echo.New()
    resource.Resource(e, "/",  &Test{})
    resource.Resource(e, "/post",  &Test{})
    e.Run(standard.New(":3000"))
}

type Test struct {
}

func (t *Test) Index(c echo.Context) error {
    return c.String(http.StatusOK, "index ok")
}

func (t *Test) Create(c echo.Context) error {
    return c.String(http.StatusOK, "create ok")
}

func (t *Test) Show(c echo.Context) error {
    return c.String(http.StatusOK, "show ok")
}

func (t *Test) Delete(c echo.Context) error {
    return c.String(http.StatusOK, "delete ok")
}

func (t *Test) Edit(c echo.Context) error {
    return c.String(http.StatusOK, "edit ok")
}

gin

import resource "less/base/resource/gin"

func main() {
    e := echo.New()
    resource.Resource(e, "/",  &Test{})
    resource.Resource(e, "/post",  &Test{})
    e.Run(standard.New(":3000"))
}

type Test struct {
}

func (t *Test) Index(c echo.Context) error {
    return c.String(http.StatusOK, "index ok")
}
// 这里有个bug  /create 和 /:id 冲突,谁能帮忙解决
// func (t *Test) Create(c echo.Context) error {
//     return c.String(http.StatusOK, "create ok")
// }

func (t *Test) Show(c echo.Context) error {
    return c.String(http.StatusOK, "show ok")
}

func (t *Test) Delete(c echo.Context) error {
    return c.String(http.StatusOK, "delete ok")
}

func (t *Test) Edit(c echo.Context) error {
    return c.String(http.StatusOK, "edit ok")
}

https://github.com/goless/resource

0 回复
需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。