idea 有没有能够根据 controller 自动生成 feign client 的插件啊 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhongpingjing
0D
V2EX    Java

idea 有没有能够根据 controller 自动生成 feign client 的插件啊

  •  
  •   zhongpingjing 2024-03-10 20:16:24 +08:00 2500 次点击
    这是一个创建于 580 天前的主题,其中的信息可能已经有所发展或是发生改变。

    插件市场搜了一下,第一个搜索结果在新版的 idea 已经不能用了

    18 条回复    2024-03-21 17:21:02 +08:00
    WDATM33
        1
    WDATM33  
       2024-03-11 08:44:50 +08:00
    这么一看还是 dubbo 方便,封装一个公共接口模块,里面只有 interface ,需要调接口的地方引入这个模块 注入所需要的类就行。不需要单独声明 client
    whatiam
        2
    whatiam  
       2024-03-11 09:25:58 +08:00   1
    更好的实践应该是手写 client interface, 然后你的 controller 来实现这个接口。接口打包成为 sdk 扔给第三方用,相关的 pojo 对象也扔 sdk 里面。这样保证了一个接口只定义一次,不会出现不一致行为。具体实现可以参考 spring feign 官方文档。
    aboat365
        3
    aboat365  
       2024-03-11 10:08:11 +08:00
    Feign-Helper ,正在开发这个功能
    keniusahdu
        4
    keniusahdu  
       2024-03-11 12:11:07 +08:00
    如果你用 swagger 描述了你的 controller 。可以用 open-api-generator 来生成客户端代码。
    kanepan19
        5
    kanepan19  
       2024-03-11 13:22:28 +08:00   1
    @WDATM33

    这也是我讨厌 feign 的地方, 写了 remote 接口还得,写一个请求路径一模一样的 controller
    Belmode
        6
    Belmode  
       2024-03-11 13:44:20 +08:00
    你这个功能...,c.h.a.t.G.P.T ,不是非常适合吗,一句话的事。
    zhongpingjing
        7
    zhongpingjing  
    OP
       2024-03-11 13:47:01 +08:00
    @aboat365 这是你在开发的插件吗
    aboat365
        8
    aboat365  
       2024-03-11 13:49:39 +08:00
    zhongpingjing
        9
    zhongpingjing  
    OP
       2024-03-11 13:50:07 +08:00
    @Belmode 我们的项目架构比较奇怪,用 feign 并不是给第三方用,而是我们每次写完 controller ,还需要在聚合服务那里写个 feign 调用这个 controller 的接口(通过 url ),然后由聚合提供前端接口服务,每次都要写个 feign 就很烦
    zhongpingjing
        10
    zhongpingjing  
    OP
       2024-03-11 13:56:01 +08:00
    @aboat365 可以,大佬加油。希望能支持直接生成 feign interface 文件,或者生成到粘贴板里
    zhongpingjing
        11
    zhongpingjing  
    OP
       2024-03-11 13:56:46 +08:00
    @Belmode 问 gpt 的功夫,我已经复制完了...
    Belmode
        12
    Belmode  
       2024-03-11 13:57:33 +08:00
    @zhongpingjing 写个你需要的 prompt ,把 controller 粘贴给 GPT 就行了。
    注意适当地脱敏。
    Belmode
        13
    Belmode  
       2024-03-11 13:58:14 +08:00
    zhongpingjing
        14
    zhongpingjing  
    OP
       2024-03-11 13:59:28 +08:00
    @whatiam 所以 feign 跟 controller 不在一个工程里
    buynonsense
        15
    buynonsense  
       2024-03-11 19:10:40 +08:00
    @Belmode #12 请问怎么根据自己需求写 prompt?还有脱敏是什么意思
    hdfg159
        16
    hdfg159  
       2024-03-12 08:09:55 +08:00 via iPhone
    啊,最佳实践就是写 controller 时候,提取接口,新建 feign 接口 时候继承接口,就这样
    whatiam
        17
    whatiam  
       2024-03-15 09:47:20 +08:00
    @zhongpingjing #14 我建议是放在同一个 git 仓库的不同模块。假如你用 gradle ,那么开一个独立的模块给 feign interface ,里面包含了 interface 以及参数的 pojo 对象。其他人要使用的时候,将这个模块打包成为一个 jar 发布出去就行。当然,你放在独立的 git repo 里面也行,但是就是要注意 git sub module 的引用,对外发布一样的步骤。
    goodspb
        18
    goodspb  
       2024-03-21 17:21:02 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2552 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 47ms UTC 04:40 PVG 12:40 LAX 21:40 JFK 00:40
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86