本文摘自php中文网,作者Guanhui,侵删。
有一种说法,golang 编写的 API 不能像其他语言那样简单和通用。但实际上,我遇到很多 REST API 的代码,非常多的抽象,使得代码库变得混乱和复杂,最终伤害了可读性和可维护性。
这一系列,我们将通过如何建立一个产品级的 REST API TODO 列表,一个可持续扩展架构,从路由和代码接口开始,然后添加一个 mongo 的数据库和一个 badger 数据层,然后是授权协议层(OAuth 2.0)
在这一系列中我们将使用 chi 路由。
为什么选择用 Chi ,而不是用标准库或者 Gin 或者 router-x 进行路由?
嗯,其实选择用什么并不重要。无论你使用什么来进行路由,本系列中讨论的概念都将是有用的。但是有下面的这些优点可以让我认为 Chi-router 比大多数替代方案更优越:
和
net/http
标准库 100% 兼容---可以在 Go 生态系统中使用任何与net / http 兼容的 http 或中间件 pkg专为模块化/可组合 API 设计 - 中间件,内联中间件,路由组和子路由器安装
没有外部依赖---纯粹的就是 Go 1.7+ stdlib + net / http
强悍?---?有很多公司正在使用,比如:Pressly,CloudFlare,Heroku,99Designs
轻量级?---?cloc'd in ~1000 LOC for the chi router
速度很快
我最喜欢的是,你为其他 net / http 兼容路由器编写的旧的 http 处理程序和中间件也可以在正常运行。
让我们开始吧
首先,我们创建一个 main.go 。我们程序的基础(或者说中心元件 ?)
相关阅读 >>
更多相关阅读请进入《Go》频道 >>
Go语言101
一个与时俱进的Go编程知识库。