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

多条件查询是用一个接口还是拆分多接口好?

  •  1
     
  •   Vimax · 2020-07-27 09:55:41 +08:00 · 4969 次点击
    这是一个创建于 1606 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 条件查询
      • 名称
      • 工号
      • 部门
      • ...

    这种多条件查询,可能是1个条件单一查询,也可能会是多条件组合查询。

    这种情况是设计一个接口,然后接口里面做参数判断。

    还是将上述所有的条件拆分为独立的接口。让前端根据不同条件调用不同的接口好。

    19 条回复    2020-07-27 20:31:11 +08:00
    zzfer
        1
    zzfer  
       2020-07-27 10:07:35 +08:00
    mybatis
    <if test="xxx != null and xxx != ''">
    AND table.xxx = #{xxx}
    </if>
    cheneydog
        2
    cheneydog  
       2020-07-27 10:11:52 +08:00
    安查询的主体对象分接口
    Tokin
        3
    Tokin  
       2020-07-27 10:13:13 +08:00
    只是查询条件不同的话,自然是提供一个接口传不同的参数最佳。
    你可以参考诸多大厂的前端业务,F12 看一下就知道了。
    zsdroid
        4
    zsdroid  
       2020-07-27 10:13:59 +08:00
    让前端根据不同条件调用不同的接口?然后呢?让前端自己取交集吗?有分页怎么办?
    wangritian
        5
    wangritian  
       2020-07-27 10:15:51 +08:00   ❤️ 1
    单一接口更好,既支持单项查询,也支持多项交叉,组织好 where
    前提是返回数据格式一致,如果条件不同结果格式不同,还是拆开好
    securityCoding
        6
    securityCoding  
       2020-07-27 10:34:04 +08:00
    多接口前端会不会锤死你....
    cnoder
        7
    cnoder  
       2020-07-27 10:49:17 +08:00
    和前端大哥交流下最重要
    tctc4869
        8
    tctc4869  
       2020-07-27 11:02:23 +08:00
    一个接口比较好,然后后端用模板引擎
    palmers
        9
    palmers  
       2020-07-27 11:14:33 +08:00
    http 接口一个, 底层接口多个 比较好 后面扩展方便 不然代码会随着业务复杂越来越乱
    Sapp
        10
    Sapp  
       2020-07-27 11:19:54 +08:00
    你是后端,不是无情的数据库查询机,你自己可以多个查询然后拼接成一个接口给前端,不要真的前端要什么你就搞个接口从数据库取一下其他什么都不管,这种是最烦的,真的想打人
    glacial
        11
    glacial  
       2020-07-27 11:20:49 +08:00
    当然是一个接口,多接口你想被前端锤吗
    xuanbg
        12
    xuanbg  
       2020-07-27 11:23:41 +08:00
    一个接口,根据条件值拼 SQL
    hoosin
        13
    hoosin  
       2020-07-27 12:22:13 +08:00
    这个没什么好问的吧

    要根据自身业务,考的是设计能力
    hoosin
        14
    hoosin  
       2020-07-27 12:23:13 +08:00
    或许 graphql 满足你
    oneisall8955
        15
    oneisall8955  
       2020-07-27 12:52:54 +08:00 via Android
    一个接口查询 10 来个动态条件的都试过,说到底就是拼接动态 SQL
    thtznet
        16
    thtznet  
       2020-07-27 14:50:03 +08:00
    Query Object 模式了解一下
    Qinmei
        17
    Qinmei  
       2020-07-27 17:31:51 +08:00
    你现在有 9 个可选参数,每个接口只查询一种条件, 那请问你总共需要多少种接口呢?

    当参数为 1 个的时候, 你要写 9 个接口;

    当参数为 2 个的时候, 你要写 9 * 8 个接口;

    当参数为 3 个的时候, 你要写 9 * 8 * 7 个接口;

    ......
    Vegetable
        18
    Vegetable  
       2020-07-27 17:35:49 +08:00
    显而易见,一个。完全没有多个接口的理由。
    toan
        19
    toan  
       2020-07-27 20:31:11 +08:00
    返回字段一致的话,一个接口。
    如果返回字段有差异,差异不大的情况,也可以使用一个接口。
    如果返回字段差别很大,接口拆分。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4885 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:43 · PVG 17:43 · LAX 01:43 · JFK 04:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.