greatcl
V2EX  ›  编程

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

  •  
  •   greatcl · Jan 6, 2016 · 2898 views
    This topic created in 3843 days ago, the information mentioned may be changed or developed.

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

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

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

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