V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
greatcl
V2EX  ›  编程

求教-API 接口应该更通用还是更专注

  •  
  •   greatcl · 2016-01-06 14:01:36 +08:00 · 2344 次点击
    这是一个创建于 3243 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如一个需要一个判断用户今日是否签到的接口,由以下两种方案:
    1. 直接返回是否签到
    2. 返回上次签到时间及当前服务器时间

    对于 1 ,客户端可以省去判断,直接使用。
    对于 2 ,如果以后有类似:获取用户已多少天没有签到的需求,此接口仍可使用。

    有同事建议是使用 1 的方式,在服务器上把一切逻辑处理完毕,客户端上尽量不做任何逻辑运算。
    大家有什么看法呢?

    11 条回复    2016-01-07 09:10:02 +08:00
    greatcl
        1
    greatcl  
    OP
       2016-01-06 14:05:19 +08:00
    自己顶下,掉的好快
    HanSonJ
        2
    HanSonJ  
       2016-01-06 14:08:05 +08:00
    就不能全部都返回么。。。更省事
    greatcl
        3
    greatcl  
    OP
       2016-01-06 14:11:15 +08:00
    @HanSonJ 是可以,那如果之后要获取已多少天未签到,还要修改接口把天数计算出来返回吗?
    raptium
        4
    raptium  
       2016-01-06 14:15:02 +08:00
    各有各的好处,字段传多了浪费带宽,传少了以后加新功能就得改接口。所以才会有 GraphQL 这种设计出来,不过你这个例子可能不适用。
    myh0000
        5
    myh0000  
       2016-01-06 14:22:26 +08:00
    获取用户已多少天没有签到的需求 是程序猿自己想出来的吧,是的话, 1
    greatcl
        6
    greatcl  
    OP
       2016-01-06 14:23:48 +08:00
    @raptium 谢谢,我去了解下 GraphQL 。
    greatcl
        7
    greatcl  
    OP
       2016-01-06 14:28:41 +08:00
    @myh0000 是的。。。
    myh0000
        8
    myh0000  
       2016-01-06 14:39:25 +08:00
    如果是一整套接口的话,可以考虑下扩展性和其他 api 的一致性,如果只是一个,简单来就行,以后要改也不费事
    HanSonJ
        9
    HanSonJ  
       2016-01-06 17:43:54 +08:00
    其实这个应该是要考虑扩展性的问题,做到以后就算要更多的参数,容易加上去,加上去又不会对客户端有任何影响,现阶段是需要什么返回什么,服务端做好拓展性就好了
    anerevol
        10
    anerevol  
       2016-01-06 17:48:50 +08:00
    如果不嫌麻烦的话
    先提供复杂的 能满足所有情况的 API
    然后再提供各种简化专注的版本
    greatcl
        11
    greatcl  
    OP
       2016-01-07 09:10:02 +08:00 via Android
    @myh0000
    @HanSonJ
    @anerevol
    谢谢 准备先返回现在需要的参数,之后有其他需求再扩展。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1239 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:59 · PVG 01:59 · LAX 09:59 · JFK 12:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.