go-httpbin, http 请求测试工具推荐
httpbin 是什么
A simple HTTP Request & Response Service (written in Python + Flask).
一个简单的 HTTP 请求和回复测试服务。
httpbin 用途
http 开发调试
httpbin 提供了 GET/PUT/POST/PATCH/DELETET
常见方法,可以把请求头、参数等返回,类似 Echo 服务。方便调试 http 请求。
http 库测试
使用开源或者自己项目封装的 http 请求库,可以把 httpbin 作为服务端,测试各种场景。
除了在线的 https://httpbin.org/,也可以本地部署。
云原生示例服务
可作为演示服务,测试平台功能。例如,isito 就有 httpbin sample 服务,用来实验 istio 各种特性
详见: https://github.com/istio/istio/tree/master/samples/httpbin
httpbin 常用接口
/get 接口
/put, /post, /patch
还会打印出请求体数据
curl 'https://httpbin.org/get?paramA=aa'
{
"args": {
"paramA": "aa"
},
"headers": {
"Accept": "*/*",
"Host": "httpbin.org",
"User-Agent": "curl/7.64.1",
"X-Amzn-Trace-Id": "Root=1-6107dcac-1d6d3fb32f67d8184c184992"
},
"origin": "111.207.117.50",
"url": "https://httpbin.org/get?paramA=aa"
}
/status/{codes} 接口
用来返回特定的状态码
curl 'https://httpbin.org/status/418'
-=[ teapot ]=-
_...._
.' _ _ `.
| ."` ^ `". _,
\_;`"---"`|//
| ;/
\_ _/
`"""`
/ip 接口
返回原始 ip
curl 'https://httpbin.org/ip'
{
"origin": "xxx.xxx.xxx.xxx"
}
/delay/{delay} 接口
延时一定时间返回
还有很多测试接口,可在官网查看
go-httpbin 优化
httpbin 的 github https://github.com/postmanlabs/httpbin 在 2018.11 后就没有更新了,有一些需求和 bug 都没有解决。
无意将发现了 go-httpbin, 是一个只使用 golang 标准库实现的 httpbin。
所以我 fork 了 mccutchen/go-httpbin 项目,并添加了一些特性。
- add -response-delay args (more observability, except /delay/{time} api)
- pretty response json (more like httpbin)
- add query param envs (identify httpbin instance, default show HOSTNAME for k8s. eg: curl http://localhost:8080/get?envs=ENV1,ENV2)
- add anything api (show anything request and response)
详见: https://github.com/chinaran/go-httpbin
可以直接使用 docker 尝试运行
|
|
示例:(请求注入了 sidecar 的 httpbin 服务)
|
|
- 原文链接:https://www.gocode.top/post/2021/08/01/go-httpbin-recommendation/
- 版权声明:本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可,转载请注明出处(作者「阿然」,原文链接)。