如何封装 HTTP 接口, 供 Java 程序方面的使用?

2021-06-17 17:05:09 +08:00
 asanelder
现在俺有一个第三方服务, 提供的是 HTTP 接口. 俺自己的服务是 Java 写的.
如果直接使用 HTTP 相关库来调用吧, 好像好啰嗦, 好麻烦. 要是调用 HTTP 接口, 就是调用原生接口那样就好了.
俺想封装一下, 有什么什么好的工具呢?

俺听说过 feign, 这玩意能做这事不?
3052 次点击
所在节点    程序员
17 条回复
Veneris
2021-06-17 17:20:36 +08:00
retrofit,一个 Android 上的 http 请求框架,不过我拿到后端服务用了
oneisall8955
2021-06-17 17:23:55 +08:00
最终也是调 http 的库
shenlanAZ
2021-06-17 17:25:48 +08:00
Hutool

HttpUtil.get(url); / HttpUtil.post(url, paramMap);
Jwyt
2021-06-17 17:25:49 +08:00
。。这太多了

github.com/hsiafan/requests
我喜欢这个
micean
2021-06-17 17:27:52 +08:00
自己写个动态代理也就分分钟的事。。。。
codehelen
2021-06-17 18:58:24 +08:00
hutool
stardust21
2021-06-17 22:49:55 +08:00
@Veneris 这个确实很方便
MakeItGreat
2021-06-17 23:02:24 +08:00
你真的像编程随想………………
真的像……
clickhouse
2021-06-17 23:29:40 +08:00
feign 可以,底层也支持多种 http client
crclz
2021-06-18 00:07:17 +08:00
自己封装一个类。这其实是关注点分离 + 分层。

jdbc 或者 jpa 是怎么封装的、怎么处理的网络连接异常、怎么处理的对方返回的错误代码,你就怎样封装,最后可以得到和 jdbc 、jpa 一样简洁的编程体验。
BBCCBB
2021-06-18 00:17:01 +08:00
feign 和 retrofit2 差不多, 使用上比 retrofit2 还方便.. 不用返回 Call 对象.

吸收了 retrofit2 的优点, 改进了缺点, 比如 retrofit2 只支持 okhttp..


用 feign 就好了. 简单好用
dayeye2006199
2021-06-18 04:28:09 +08:00
要是调用 HTTP 接口, 就是调用原生接口那样就好了

你说的可能是 RPC
yitingbai
2021-06-18 08:54:20 +08:00
@MakeItGreat 编程随想不会问这么简单的问题
asanelder
2021-06-18 09:16:38 +08:00
@Veneris #1
@shenlanAZ #3
@Jwyt #4
@micean #5
@codehelen #6
@clickhouse #9
@crclz #10
@BBCCBB #11

感谢几个老铁提供的思路, 俺试试


@yitingbai #13 哈哈, 铁子给出了让人无法质疑的理由
warcraft1236
2021-06-18 11:11:37 +08:00
rpc 了解一下?
leonard916
2021-06-18 13:08:43 +08:00
我封装了一个原生的 HTTP 工具(还有别的 见: https://srl.cx/scomu )用起来就还好 如果你觉得麻烦就再套一层(框架不能提供太复杂的组合,会超啰嗦)。
Yiso1573
2021-06-18 23:22:39 +08:00
伙计我上家公司就是做接口对接的,简单的你就直接找个 http 调用的工具类就行了比如前面提的 hutool 的工具类(它有很多好用的工具类,比如时间、缓存、反射),你也可以自己写。其实主要还是需要你根据接口去做封装和设计,我一般把接口调用的和实际业务的是拆分开的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/784021

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX