V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
elone
V2EX  ›  问与答

关于 rest api 设计的一个小问题,请教

  •  
  •   elone · 2017-04-10 13:04:17 +08:00 · 1664 次点击
    这是一个创建于 2566 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一个用户列表 ,用户关联用户组和标签,在前端 api 请求时,以下两种方案哪种比较好:

    1.设计不同的 api ,比如说:

        fetchUsers()
        fetchUsersByGroup(group_id)
        fetchUsersByTag(tag_id)
    

    2.统一为一个 GET 请求 api,带过滤参数

       fetchUsers(filter_by='group',filter_id=110)
       www.example.com/api/users?filter_by=group&filter_id=110
    
    7 条回复    2017-04-10 17:00:15 +08:00
    itommy
        1
    itommy  
       2017-04-10 13:29:52 +08:00
    wc951
        2
    wc951  
       2017-04-10 15:06:06 +08:00 via Android
    真要按 rest 规范应该是 /tag/{tag_id}/users 这种吧
    BruceAuyeung
        3
    BruceAuyeung  
       2017-04-10 15:13:26 +08:00 via Android
    /api/groups/groupid/users/userid
    BruceAuyeung
        4
    BruceAuyeung  
       2017-04-10 15:14:40 +08:00 via Android
    @BruceAuyeung

    /api/groups/groupid/users?tagid=tagid
    elone
        5
    elone  
    OP
       2017-04-10 15:56:43 +08:00 via Android
    @BruceAuyeung 这样我应该要做两个 api ,/api/groups/groupid/users ,/api/tags/tagid/users
    chairuosen
        6
    chairuosen  
       2017-04-10 16:08:30 +08:00
    要我设计就这样 /api/users?group_id=123&tag_id=456
    chemzqm
        7
    chemzqm  
       2017-04-10 17:00:15 +08:00
    为了接口以后容易调整选 2 ,为了增加代码量选 1 ,其实并没太大区别
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5255 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 05:54 · PVG 13:54 · LAX 22:54 · JFK 01:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.