V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
RiceMarch
V2EX  ›  问与答

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

  •  
  •   RiceMarch · 2021-12-19 18:27:54 +08:00 · 842 次点击
    这是一个创建于 1070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条回复    2021-12-30 22:57:36 +08:00
    oneisall8955
        1
    oneisall8955  
       2021-12-19 20:59:59 +08:00 via Android
    相关 source 转 json ,target 用 json path 取。json path 可以配置到配置中心。不然就用反射了
    RiceMarch
        2
    RiceMarch  
    OP
       2021-12-30 22:57:36 +08:00
    @oneisall8955 可惜就是里面还要套 json ,类似{"id1":"{id2:"111"}"},id1 是 key,{id2:"111"}是动态配置的,111 是动态获取的,json 是动态的,json 的 value 还是动态的.最后用了很离谱的办法,无视作为 value 的 json ,直接当 string 编码,把作为 value 的 json 的 value 值空出占位符,塞到配置中心,用反射拿到对象的值放入占位符的位置,离谱...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1326 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 17:49 · PVG 01:49 · LAX 09:49 · JFK 12:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.