Go 語(yǔ)言的 Gear 框架終于打上了 v1.0.0 的 Tag。API 已經(jīng)穩(wěn)定并經(jīng)過(guò)了實(shí)際業(yè)務(wù)場(chǎng)景驗(yàn)證排龄,測(cè)試覆蓋率也是 100%波势,一些核心中間件也完成了。然而框架設(shè)計(jì)文檔沒(méi)有完成,目前只寫完了核心部分《Gear 框架設(shè)計(jì)考量》艰亮。
Gear 是由 Teambition 開(kāi)發(fā)的一個(gè)輕量級(jí)的闭翩、專注于可組合擴(kuò)展和高性能的 Go 語(yǔ)言 Web 服務(wù)框架。其設(shè)計(jì)參考了 Go 生態(tài)下現(xiàn)有的近十款 Web 框架和 Node.js 生態(tài)的 koa迄埃、Toa 等框架疗韵。
Demo
package main
import (
? ?"fmt"
? ?"os"
? ?"github.com/teambition/gear"
? ?"github.com/teambition/gear/logging"
)
func main() {
? ?app := gear.New()
? ?// Add logging middleware
? ?app.UseHandler(logging.Default())
? ?// Add router middleware
? ?router := gear.NewRouter()
? ?router.Use(func(ctx *gear.Context) error {
? ? ? ?// do some thing.
? ? ? ?fmt.Println("Router middleware...", ctx.Path)
? ? ? ?return nil
? ?})
? ?router.Get("/", func(ctx *gear.Context) error {
? ? ? ?return ctx.HTML(200, "
Hello, Gear!
")? ?})
? ?app.UseHandler(router)
? ?app.Error(app.Listen(":3000"))
}
下載地址:
Source code (zip)
Source code (tar.gz)