为什么要开发httpz
net/http 1.22版本增强了路由功能,我们不再需要第三方路由(框架),例如Echo, gin 和 chi就能
开发一个完整的Web项目。但标准库追求简单,使得其使用体验不如第三方框架。
例如:
-
分组不方便,net/http使用Handle(pattern, http.Handler)函数来将相同组的请求转发到
http.Handler,管理不方便。 而Echo框架直接使用Group(pattern)来实现。 -
Echo的错误集中处理是个好习惯,我们应该在
handler中返回错误,这能减少处理错误的工作量。 -
数据绑定需要手动实现。当一个handler需要绑定很多的请求参数,
net/http需要你一个个绑定。 -
返回响应时,
net/http需要你手动设置响应头,状态码和响应体。这会造成重复代码。
httpz是什么
httpz 是下列功能的合集
- 以net/http 1.22+版本为基础
- 全局错误处理
- 便捷的分组
- 来自chi的中间件
- 来自Echo的数据绑定
- 快捷返回响应
httpz只是net/http的增强库,而不是新的框架。使用httpz,实际上就是使用net/http标准库进行开发。
httpz完全兼容net/http,
你可以选择使用httpz的增强功能,或者直接使用net/http。
设计理念
- 零依赖,所有功能的实现都是基于
net/http的API。 - 方便快捷,不强制。你仍可以使用
net/http的习惯进行开发。 - 是一个增强库,而非新的框架。