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

有 java 大神吗 帮帮忙

  •  
  •   getYourMother · 2017-01-05 16:54:31 +08:00 · 9567 次点击
    这是一个创建于 2877 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目中要做个模糊搜索的功能
    http 请求地址类似这样: http://abc.com/d/4/c/3/a/1/b/2
    也有可能是这样: http://abc.com/b/1/d/5/a/4
    abcd 表示 4 个搜索条件,条件顺序不固定,个数也不固定
    现在假设用户第一次选择了 a=1 ,我直接拼接 /a/1 ,即: http://abc.com/a/1
    第二次选择了 c=3 ,我再拼接 /c/3 ,即: http://abc.com/a/1/c/3
    第三次他又重新选了 a=2 那么我该怎么办?
    14 条回复    2017-01-05 21:48:23 +08:00
    mringg
        1
    mringg  
       2017-01-05 17:09:17 +08:00 via iPhone
    先都丢在 dict 里,最后再拼接
    KentY
        2
    KentY  
       2017-01-05 17:13:49 +08:00   ❤️ 1
    用 map 先保存用户选项, 最后生成字串.
    你说的情况如果是覆盖以前的 a, 就简单的 map 就可以, 如果是一直可以 append, remove 的情形, 可以考虑用 multimap.
    iyangyuan
        3
    iyangyuan  
       2017-01-05 17:39:02 +08:00   ❤️ 1
    这个接口的设计也是醉了。。为什么不用参数呢。。
    neoblackcap
        4
    neoblackcap  
       2017-01-05 17:48:32 +08:00
    @iyangyuan 可能是 restful 的原教主义者
    springmarker
        5
    springmarker  
       2017-01-05 17:51:44 +08:00 via Android
    一直不喜欢这样的访问方式,接口也不好设计,? a=1&b=2&c=3&d=4 多好,简单明了
    smithtel
        6
    smithtel  
       2017-01-05 17:55:25 +08:00 via Android
    我在想你这帮忙是帮忙改接口设计呢,还是改存储选项呢
    retanoj
        7
    retanoj  
       2017-01-05 18:01:16 +08:00
    接口变成 a=1&b=2 这种也行
    后端处理 /a/1/b/2 <==> /b/2/a/1 能处理好也行
    zhidian
        8
    zhidian  
       2017-01-05 18:02:40 +08:00
    后端应当制定一个明确、简单、合理的规则,而不是尝试适应前端稀奇古怪的请求,还美其名曰 versatile 。
    misaka19000
        9
    misaka19000  
       2017-01-05 18:13:01 +08:00 via Android
    看这标题我以为有人来问作业了。。。
    loshine1992
        10
    loshine1992  
       2017-01-05 18:41:26 +08:00
    restful 的筛选条件,应该以 query 的形式传吧,除非你这里的 a 、 b 、 c 、 d 都可以和数据库里的一个表对应起来
    jetyang
        11
    jetyang  
       2017-01-05 18:50:11 +08:00
    这和 java 有什么关系?
    williamgong
        12
    williamgong  
       2017-01-05 18:56:02 +08:00 via iPhone
    代码中用四个变量接着就可以了呀,最后才拼接成 url 不就可以了吗
    ooTwToo
        13
    ooTwToo  
       2017-01-05 19:53:15 +08:00 via iPhone
    查询前重新拼接一次呗…
    szanlin
        14
    szanlin  
       2017-01-05 21:48:23 +08:00
    支持这样的方式 a=1&b=2&c=3&d=4
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:16 · PVG 05:16 · LAX 13:16 · JFK 16:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.