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

关于接口的定义,是否需要规范?

  •  
  •   miracleyao · 2016-06-27 10:23:45 +08:00 · 2939 次点击
    这是一个创建于 3066 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们在开发系统的时候,常常需要定义接口给第三方系统调用,目前我们组一个同事坚持把新增和修改定义为同一个接口,比如 api/saveOrUpdate ,我跟他说这是两个不同的业务,最好分开为两个接口,当然实现是可以实现,但我总觉得这样不符合接口的定义规范,请问我该怎么说服他,或者 V 友可以说服我的。

    12 条回复    2023-05-07 19:09:09 +08:00
    jason19659
        1
    jason19659  
       2016-06-27 10:27:33 +08:00
    这两个接口需要的权限不一样
    Niphor
        2
    Niphor  
       2016-06-27 10:34:08 +08:00
    这个谁官大 谁说了算
    但是 谁埋的坑,到时让谁自己去填
    SoloCompany
        3
    SoloCompany  
       2016-06-27 12:18:27 +08:00
    mysql REPLACE 语句表示:你在说啥?
    Ouyangan
        4
    Ouyangan  
       2016-06-27 12:45:41 +08:00
    分开 , insert,update 写一起的人脑子有屎.
    9hills
        5
    9hills  
       2016-06-27 13:02:08 +08:00
    这玩意没法说服。。。
    rekulas
        6
    rekulas  
       2016-06-27 13:25:52 +08:00
    如果是按 restful 的风格来看 好像也不算什么太违规的问题
    akira
        7
    akira  
       2016-06-27 13:56:27 +08:00
    INSERT ON DUPLICATE KEY UPDATE

    当然了,具体还是要看你们的业务需求了。例如如果业务上有限定例如资料不可修改,那当然还是要分成两个来做了。
    miracleyao
        8
    miracleyao  
    OP
       2016-06-27 14:01:54 +08:00
    @rekulas rest 风格的规范是 add 和 update 分开的
    mercurylanded
        9
    mercurylanded  
       2016-06-27 14:08:18 +08:00
    如果实体的 key 是外部传过来的就没问题

    如果实体是系统内生成的 key 不要这样写
    miracleyao
        10
    miracleyao  
    OP
       2016-06-27 14:21:15 +08:00
    @mercurylanded 根据 key 是否为 null 来进行相应的操作。
    rekulas
        11
    rekulas  
       2016-06-27 16:17:08 +08:00
    @miracleyao 是分开的 不过区别很小 method 和少个 id 的区别 rest 是把 id 加到 url 中 他定义同一个接口 api/saveOrUpdate 那应该是把 id 加到 post 参数中,这当然不算 rest 了,但是我觉得也不算太奇葩的方法
    liamli
        12
    liamli  
       2023-05-07 19:09:09 +08:00
    过于系统化和事无巨细的规范,会影响激发创新, 因为大家不用思考,只要按规章办事就行了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1802 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:44 · PVG 00:44 · LAX 08:44 · JFK 11:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.