• 请不要在回答技术问题时复制粘贴 AI 生成的内容
darknoll
V2EX  ›  程序员

后端接口中连续多个路径参数,这样设计接口是不是不太好

  •  1
     
  •   darknoll · Jun 1, 2021 · 3202 views
    This topic created in 1987 days ago, the information mentioned may be changed or developed.

    比如 api/appX/{路径参数 1}/{路径参数 2}/{路径参数 3}

    13 replies  •  2021-06-01 17:45:39 +08:00
    zoharSoul
    zoharSoul
    Jun 1, 2021
    1
    github api 好像就有这种.
    SingeeKing
    SingeeKing
    Jun 1, 2021
    2
    连续三个太奇怪,但

    api/appX/{路径参数 1}/描述 2/{路径参数 2}/ 这种还是挺常见的
    CodeCodeStudy
    CodeCodeStudy
    Jun 1, 2021
    3
    不好,非常不直观
    no1xsyzy
    no1xsyzy
    Jun 1, 2021
    4
    如果你有很明确的层级关系,这样一点问题都没有。但如果没有层级关系,这样就是在降低可维护性。

    甚至还见过
    .../{参数 1}/{参数 2}
    和
    .../{参数 1}/{参数 2}/False
    是两个完全不同的接口,两个返回 json 字段重合的只有一个 id
    mikulch
    mikulch
    Jun 1, 2021
    5
    看你多大的项目了。一般的项目不要要求太严格了。。
    Hstar
    Hstar
    Jun 1, 2021
    6
    如果你的路径参数是语义化的,如 api/appX/earth/asia/china,我觉得还行,如果是 api/appX/3/5/7,那就太垃圾了
    NotFoundEgg
    NotFoundEgg
    Jun 1, 2021
    7
    连续 2 个 我感觉看着都很难受
    KarmaWu
    KarmaWu
    Jun 1, 2021
    8
    改造成 api/appX?param1=xxx&param2=xxx 不好么
    Rache1
    Rache1
    Jun 1, 2021
    9
    一般 rest 风格,最好参数前面要有实体名字的,如果是 filter 参数的话,还是建议使用 GET 或者 POST 的 payload 传递,而不是这种强行拼接
    IvanLi127
    IvanLi127
    Jun 1, 2021
    10
    具体问题具体分析,得看这参数有没有层级关系,没有的话大概率不合适,有的话那还成,当然。。。能一步到位的话应该考虑直接用最后一个参数来获取数据。
    chinvo
    chinvo
    Jun 1, 2021 via iPhone
    11
    filter 不用路径参数

    别把伪静态那套风格带进 rest
    Vitta
    Vitta
    Jun 1, 2021
    12
    这种感觉好难受
    Symo
    Symo
    Jun 1, 2021
    13
    事后写 access log 正则的时候会非常麻烦
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2060 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 00:11 · PVG 08:11 · LAX 16:11 · JFK 19:11
    ♥ Do have faith in what you're doing.