V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
JoeBreeze
V2EX  ›  Go 编程语言

有没有哪个 golang web 框架支持谷歌 api 这个规范的 (https://xxx.com/v1/api:method)

  •  
  •   JoeBreeze · 2021-11-02 14:18:27 +08:00 · 2304 次点击
    这是一个创建于 1099 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2021-11-02 15:03:38 +08:00
    标题只是个例子... 我不知道这个域名是 porn 相关的
    第 2 条附言  ·  2021-11-02 15:33:33 +08:00
    目前如同 #5 老哥所说, https://github.com/gorilla/mux 确实可以实现, 但是还是希望能找到一个类似 https://github.com/gin-gonic/gin 的 web 框架, 路由更加自由

    gin 的 issue 也有人吐槽过这个...
    17 条回复    2021-11-03 13:59:42 +08:00
    saltbo
        1
    saltbo  
       2021-11-02 14:55:41 +08:00
    同问。k8s 的 api 就是这种吧? 很喜欢这种形式
    vvqqdd
        2
    vvqqdd  
       2021-11-02 14:56:57 +08:00
    你标题这个网站点进去是 p0rn 。。。
    mauve
        3
    mauve  
       2021-11-02 14:58:40 +08:00
    @vvqqdd 已经点进去了……
    JoeBreeze
        4
    JoeBreeze  
    OP
       2021-11-02 15:02:46 +08:00
    @vvqqdd #2 我随便打的, 完蛋...
    XTTX
        5
    XTTX  
       2021-11-02 15:25:55 +08:00
    看得不是很懂。 推荐错了就当我没有说过。gorilla mux
    r := mux.NewRouter()
    s := r.PathPrefix("/1").Subrouter()
    s.HandleFunc("/{api:[a-z]+}", ProductsHandler)

    ProductsHandler 里 通过 vars := web.Params(r)
    apiMethod:= vars["api"] 读出来
    XTTX
        6
    XTTX  
       2021-11-02 15:27:02 +08:00
    如果是上面的需求,应该是个像样的 mux 都会提供这个吧。
    JoeBreeze
        7
    JoeBreeze  
    OP
       2021-11-02 15:31:50 +08:00
    @XTTX #5 多谢老哥, 这个确实有在公司的项目里看到过, 而个人用的是 gin, gin 自带的路由是不能使用 :method, 会被 gin.Context 当作一个参数 "method", 所以想找个类似 gin 这种好用的框架, 但是路由可以更加自由一些
    andyskaura
        8
    andyskaura  
       2021-11-02 15:36:39 +08:00
    xxx 这个域名老贵了吧
    XTTX
        9
    XTTX  
       2021-11-02 16:55:13 +08:00
    @JoeBreeze 既然都是 custom method 了, 就当作 regex 读吧。 我还不是很懂你的需求,不过 go 的好处就是可以自己随意封装。 可以参考一下 ardanlabs service 把 treeMux 封装成了自己需要的样子,所有的 web 框架都放在 foundation 里,app 文件夹里的 handler 调用
    JoeBreeze
        10
    JoeBreeze  
    OP
       2021-11-02 17:03:21 +08:00
    @XTTX #9 需求的出发点就是在用 gin 的时候被它的路由限制住了, 所以想寻求一个路由可以实现 custom_methods 的 web 框架. 好的! 谢谢, 我去看看
    superfatboy
        11
    superfatboy  
       2021-11-02 21:00:55 +08:00
    要不试试 iris
    pming1
        12
    pming1  
       2021-11-03 08:50:45 +08:00
    这也是 rest 里的一种吧
    JoeBreeze
        13
    JoeBreeze  
    OP
       2021-11-03 09:19:56 +08:00
    @superfatboy #11 好的谢谢!
    JoeBreeze
        14
    JoeBreeze  
    OP
       2021-11-03 09:21:37 +08:00
    @pming1 #12 是啊.. 好像都是谷歌设计的规范
    abccccabc
        15
    abccccabc  
       2021-11-03 11:30:00 +08:00
    xxx.com/v1/api:method 这种方式很容易让人猜到请求方式,从而被攻击哦
    yrj
        16
    yrj  
       2021-11-03 12:26:45 +08:00 via iPad
    gofiber 你值得拥有 :)
    Oktfolio
        17
    Oktfolio  
       2021-11-03 13:59:42 +08:00
    @abccccabc 只是把 POST xxx.com/v1/undelete-user {"username": "用户名"},变成了 POST xxx.com/v1/users/用户名:undelete ,怎么就会被攻击了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5825 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:53 · PVG 09:53 · LAX 17:53 · JFK 20:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.