V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
RiceMarch
V2EX  ›  问与答

如何设计后端根据条件动态返回 url

  •  
  •   RiceMarch · Dec 19, 2021 · 1166 views
    This topic created in 1602 days ago, the information mentioned may be changed or developed.

    java/spring/Native

    前几天在工作时,我们的客户端因为后端的返回值的情况实在是太多直接摆烂了,让我来给他返回 url 便于她直接跳转,我赶鸭子上架的写好了一版能跑的代码,今天想着优化,抓破脑袋也不知道怎么办...

    背景是这样的,客户端希望返回的对象能够包装 url,其中包装的 url 由点击空白处和点击按钮的两种 url ,(姑且称为 blankUrl,buttonUrl )

    每个 URI 的基本构成是

    write?id={}&router{}&params={}&query={}
    
    1. id 基本不会发生变动
    2. router 会根据 response 中的属性值进行判断
    3. params 和 query 性质相同,均为 json ,也会根据 response 中的属性值进行判断。其中 json 中一些属性包含默认值,他们会将某些 response 中的属性赋值在其上,

    例子:

    {
        "id":"此处由 response 中值动态获取",
        "type":"ORDER",//此处为定值
    }
    

    老大希望能写成动态配置,可以灵活变更 router ,params ,query 的所有内容(包括动态获取属性的变化,如 id 原来取属性 A ,现在改为属性 B )。

    小弟不才,实在是没想出什么优雅的解决方案...

    2 replies    2021-12-30 22:57:36 +08:00
    itechify
        1
    itechify  
    PRO
       Dec 19, 2021 via Android
    相关 source 转 json ,target 用 json path 取。json path 可以配置到配置中心。不然就用反射了
    RiceMarch
        2
    RiceMarch  
    OP
       Dec 30, 2021
    @oneisall8955 可惜就是里面还要套 json ,类似{"id1":"{id2:"111"}"},id1 是 key,{id2:"111"}是动态配置的,111 是动态获取的,json 是动态的,json 的 value 还是动态的.最后用了很离谱的办法,无视作为 value 的 json ,直接当 string 编码,把作为 value 的 json 的 value 值空出占位符,塞到配置中心,用反射拿到对象的值放入占位符的位置,离谱...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3066 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 14:05 · PVG 22:05 · LAX 07:05 · JFK 10:05
    ♥ Do have faith in what you're doing.