超好用的流式 http client,发布啦!

2019-09-29 08:53:48 +08:00
 guonaihong

历时 4 个月,精心设计,追求 unix 工具箱原则,一个件事只有一个 API 完成。像 SetHeader 和 SetHeaders 这种 API 不存在,只有 SetHeader。目标是成为此类项目影响力最大的一个,当然这个目标还很长远,欢迎 v 友提 issue 和 pr。

项目地址

https://github.com/guonaihong/gout

技能树

4278 次点击
所在节点    程序员
18 条回复
m2276699
2019-09-29 09:17:03 +08:00
"目标是成为此类项目影响力最大的一个"
C#可用吗?
w292614191
2019-09-29 09:53:15 +08:00
还以为是支持 IDEA 的插件呢。
guonaihong
2019-09-29 10:05:01 +08:00
@w292614191 好吧。我下次我备注下是开发 lib
micean
2019-09-29 10:11:03 +08:00
一个件事只有一个 API 完成。像 SetHeader 和 SetHeaders 这种 API 不存在,只有 SetHeader。
==========================

这种理念太偏执了吧,没办法做到“影响力最大的一个”
guonaihong
2019-09-29 10:40:53 +08:00
@micean 这和语言生态有关系,go 也用的 unix 工具箱原则。你会发现开发起来特别爽。我现在就比较头疼 rust,干一件事,不同的语境下面,用的函数都不一样。
Immortal
2019-09-29 10:46:18 +08:00
我以为流式是 steam 原来是链式操作- -
Immortal
2019-09-29 10:46:33 +08:00
steam->stream
Immortal
2019-09-29 10:48:48 +08:00
粗略看了下 貌似很"gin"
wysnylc
2019-09-29 12:16:06 +08:00
apache httpclient fluent 你可以参考这个来实现
GM
2019-09-29 12:25:56 +08:00
恕我直言,这种语法,铁定火不起来,更别说什么“成为此类项目影响力最大的一个”了
guonaihong
2019-09-29 12:33:06 +08:00
@wysnylc 谢谢。。。
guonaihong
2019-09-29 12:33:34 +08:00
@GM 兄弟可有好的想法?
guonaihong
2019-09-29 12:36:14 +08:00
@m2276699 c#不可以。不过 go 语法不复杂,看一天就可以写了。还有个 go 特别爽的是,方便交叉编译到 windows, linux,mac 上面。
guonaihong
2019-09-29 12:43:21 +08:00
@Immortal 兄弟,你是第一个看出来的。
littlespider89
2019-09-29 13:40:24 +08:00
guonaihong
2019-09-29 14:31:44 +08:00
@Immortal 流式这个词看的 smallnest 说的,他写的博客不错。
sunriz
2019-09-29 14:51:06 +08:00
初始化默认都填 nil,那如果要给参数就要填个 client 结构体的指针,填完后再在外面修改结构体内容,会发生什么? http 库本身是有意导出这些结构体成员,本身是无状态的。但是如果包了一层,还把底层暴露出去,感觉不合适,而且你也必须一直保持中间这层无状态,容易有坑
guonaihong
2019-09-29 17:04:46 +08:00
@sunriz 标准库里面 http.Client 需要注意的地方,他里面是个连接池。如果不停的声明新的。会导致 fd 不够用,从而报错,只要保证业务声明一个 http.Client 就行。或者传 nil。

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

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

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

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

© 2021 V2EX