Vimax
V2EX  ›  Java

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

  •  1
     
  •   Vimax · Jul 27, 2020 · 5603 views
    This topic created in 2124 days ago, the information mentioned may be changed or developed.
    • 条件查询
      • 名称
      • 工号
      • 部门
      • ...

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

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

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

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

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

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

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

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

    ......
    Vegetable
        18
    Vegetable  
       Jul 27, 2020
    显而易见,一个。完全没有多个接口的理由。
    toan
        19
    toan  
       Jul 27, 2020
    返回字段一致的话,一个接口。
    如果返回字段有差异,差异不大的情况,也可以使用一个接口。
    如果返回字段差别很大,接口拆分。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4270 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 97ms · UTC 01:00 · PVG 09:00 · LAX 18:00 · JFK 21:00
    ♥ Do have faith in what you're doing.