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

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

  •  
  •   zhongpingjing · 289 天前 · 1933 次点击
    这是一个创建于 289 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    这也是我讨厌 feign 的地方, 写了 remote 接口还得,写一个请求路径一模一样的 controller
    Belmode
        6
    Belmode  
       288 天前
    你这个功能...,c.h.a.t.G.P.T ,不是非常适合吗,一句话的事。
    zhongpingjing
        7
    zhongpingjing  
    OP
       288 天前
    @aboat365 这是你在开发的插件吗
    aboat365
        8
    aboat365  
       288 天前
    zhongpingjing
        9
    zhongpingjing  
    OP
       288 天前
    @Belmode 我们的项目架构比较奇怪,用 feign 并不是给第三方用,而是我们每次写完 controller ,还需要在聚合服务那里写个 feign 调用这个 controller 的接口(通过 url ),然后由聚合提供前端接口服务,每次都要写个 feign 就很烦
    zhongpingjing
        10
    zhongpingjing  
    OP
       288 天前
    @aboat365 可以,大佬加油。希望能支持直接生成 feign interface 文件,或者生成到粘贴板里
    zhongpingjing
        11
    zhongpingjing  
    OP
       288 天前
    @Belmode 问 gpt 的功夫,我已经复制完了...
    Belmode
        12
    Belmode  
       288 天前
    @zhongpingjing 写个你需要的 prompt ,把 controller 粘贴给 GPT 就行了。
    注意适当地脱敏。
    Belmode
        13
    Belmode  
       288 天前
    zhongpingjing
        14
    zhongpingjing  
    OP
       288 天前
    @whatiam 所以 feign 跟 controller 不在一个工程里
    buynonsense
        15
    buynonsense  
       288 天前
    @Belmode #12 请问怎么根据自己需求写 prompt?还有脱敏是什么意思
    hdfg159
        16
    hdfg159  
       287 天前 via iPhone
    啊,最佳实践就是写 controller 时候,提取接口,新建 feign 接口 时候继承接口,就这样
    whatiam
        17
    whatiam  
       284 天前
    @zhongpingjing #14 我建议是放在同一个 git 仓库的不同模块。假如你用 gradle ,那么开一个独立的模块给 feign interface ,里面包含了 interface 以及参数的 pojo 对象。其他人要使用的时候,将这个模块打包成为一个 jar 发布出去就行。当然,你放在独立的 git repo 里面也行,但是就是要注意 git sub module 的引用,对外发布一样的步骤。
    goodspb
        18
    goodspb  
       278 天前
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:59 · PVG 23:59 · LAX 07:59 · JFK 10:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.