由于 Go 内置的 net/http
在 HTTP 处理上已经非常完善,因此做 web 开发有两种模式:
- 使用内置的
net/http
,搭配各类中间件,比如 Gorilla Web Toolkit、urfave/negroni。优点是灵活度高 - 使用框架,比如 Gin、Echo 等。优点是框架本身 battery include,集成了一批 opinionated 的中间件,比如 router、validator 等
但我认为 Go 在 web 上的生态还是大不如其他语言,没有他们长年的积累。比如 php 的 Lavavel、Python 的 Django 以及 Java 的 Spring Boot 等。如果正经做 web,考虑还是用这些语言和框架。