Httpbin-HTTP接口基础服务(Httpbin-HTTP接口基础服务)
Httpbin-HTTP接口基础服务(Httpbin-HTTP接口基础服务)可以看到,我们可以直接在网页上发起包括 GET、POST、PUT 和 DELETE 等常用的 HTTP 请求,并得到返回的响应的详细信息。Httpbin示例Httpbin 提供了现成的 Docker 镜像,拉取镜像便可以直接部署启动:docker pull kennethreitz/httpbin docker run -p 80:80 kennethreitz/httpbin这里,我们启动了一个在本机80端口映射到 httpbin 服务80端口的容器。Httpbin 使用了 Python 语言的微型 Web 框架 Flask 实现,并通过 Flasgger 提供了 Swagger 界面,用于接口的可视化调试,也可以自行配置 Python 环境进行部署。Httpbin 提供的接口众多,如提供了可供不同 HTTP 请求方法调用的接口:
相信不少开发者对于 httpbin.org 这个域名并不陌生,这个站点提供了基础的 HTTP 接口,包括对于不同请求方法、不同请求参数等高可用接口,尤其在进行网络连通测试、 HTTP 请求头解析,和测试数据生成等场景中,应用广泛。
HTTP接口
简介Httpbin,是 postmanlabs 组织在 Github 上开源的 HTTP 接口基础服务,项目位于 https://github.com/postmanlabs/httpbin,目前版本为 0.6.1。Httpbin 提供了丰富的接口,包括不同请求方法、返回不同状态码、使用不同验证方法、返回请求的 IP 和 UA、返回随机字符串数据、具备特定延迟时间、可以操作 Cookie 的 HTTP 接口,使得开发者可以在原本稳定性和可靠性不高的互联网或内部测试环境中,得到一个可靠的、高可用的、稳定的、可预料的 HTTP 服务,同时,还给出了图形化的界面,可以在网页中进行接口的调用,并定制化输入和输出,大大提高了开发效率。
httpbin logo
安装Httpbin 提供了现成的 Docker 镜像,拉取镜像便可以直接部署启动:
docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin
这里,我们启动了一个在本机80端口映射到 httpbin 服务80端口的容器。Httpbin 使用了 Python 语言的微型 Web 框架 Flask 实现,并通过 Flasgger 提供了 Swagger 界面,用于接口的可视化调试,也可以自行配置 Python 环境进行部署。
示例Httpbin 提供的接口众多,如提供了可供不同 HTTP 请求方法调用的接口:
Httpbin示例
可以看到,我们可以直接在网页上发起包括 GET、POST、PUT 和 DELETE 等常用的 HTTP 请求,并得到返回的响应的详细信息。
Httpbin 还提供了能够返回所有不同的 HTTP 状态码的响应,如可以直接返回一个 404 的响应,模拟找不到服务器资源的场景,在进行测试时十分方便:
httpbin状态码
Httpbin 还提供了十分使用的对请求的解析接口,从当前的 HTTP 请求中,获取请求头、IP地址,和 User-Agent 等信息,通过响应返回。这一功能对于获取目前环境的信息十分有用,尤其是 IP 和 User-Agent 信息,在如使用代理和混淆伪装等的复杂网络情景下,可以可靠地获知当前发起请求的环境的信息。
httpbin请求解析
Httpbin 还提供了模拟不同延迟的接口,可以通过传递参数,获得延迟特定时间的接口,对于模拟低质量网络环境下的测试有很大的价值。
httpbin延迟
Httpbin也可以作为 mock 服务,提供了简单的随机数据生成接口,以供测试。
httpbin随机数据
总结Httpbin 作为一个 HTTP 接口基础服务,提供了可靠的 HTTP 测试服务,通过在内部测试环境部署一个高可用的 httpbin 服务,就可以省却开发和测试中许多重复在本地进行测试模拟的环境搭建工作,也可以在 httpbin 的基础上,根据自身需求进行扩展,搭建一个更为实用的 HTTP 基础服务。