V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
techone
V2EX  ›  程序员

ThinkGo:一个轻量级的 Go 语言 MVC 框架

  •  1
     
  •   techone · 2019-02-14 13:22:33 +08:00 · 3820 次点击
    这是一个创建于 2134 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ThinkGo 是一个轻量级的 Go 语言 MVC 框架,目前支持路由、中间件、控制器、请求、响应、Session、视图、日志、缓存、ORM等 web 框架应该具备的基本功能,ThinkGo 致力于让代码简洁且富于表达力,帮助开发者快速构建一个 Web 应用。

    特性

    • 简洁的路由,支持参数注入
    • 强大的路由中间件,支持前置/后置中间件
    • Session 支持,支持 cookie、redis 及自定义存储
    • 强大的日志服务,支持多通道存储,遵循RFC 5424规范。
    • 缓存,支持 memory、redis 及自定义缓存驱动
    • 简洁的 ORM,能使用原生 SQL、流畅的查询构造器

    安装

    go get github.com/thinkoner/thinkgo
    

    快速开始

    package main
    
    import (
    	"github.com/thinkoner/thinkgo"
    	"fmt"
    	"github.com/thinkoner/thinkgo/router"
    	"github.com/thinkoner/thinkgo/context"
    )
    
    func main() {
    	app := thinkgo.BootStrap()
    	app.RegisterRoute(func(route *router.Route) {
    
    		route.Get("/", func(req *context.Request) *context.Response {
    			return thinkgo.Text("Hello ThinkGo !")
    		})
    
    		route.Get("/ping", func(req *context.Request) *context.Response {
    			return thinkgo.Json(map[string]string{
    				"message": "pong",
    		    })
    		})
    
    		// Dependency injection
    		route.Get("/user/{name}", func(req *context.Request, name string) *context.Response {
    			return thinkgo.Text(fmt.Sprintf("Hello %s !", name))
    		})
    	})
    	// listen and serve on 0.0.0.0:9011
    	app.Run()
    }
    

    协议

    ThinkGo 采用 Apache 2.0 开源协议发布。

    项目地址

    联系作者

    https://github.com/thinkoner/thinkgo/issues

    6 条回复    2019-02-16 11:58:18 +08:00
    techone
        1
    techone  
    OP
       2019-02-14 13:26:25 +08:00
    快来吐槽
    fnh
        2
    fnh  
       2019-02-14 13:34:33 +08:00
    第 N 个叫 ThinkGo 的 GO 框架
    tulongtou
        3
    tulongtou  
       2019-02-14 13:47:27 +08:00 via iPhone
    ThinkPHP 他弟嘛
    luob
        4
    luob  
       2019-02-14 14:26:30 +08:00   ❤️ 1
    先 star 一个,然后吐槽:
    1. 用 go 语言写东西就是为了躲开全家桶的条条框框限制,老子想怎么写就怎么写,你可以提供一些小工具或者 typedef 原生库做一些渐进增强,写一个全家桶肯定要被很多人鄙视的,做好心理准备。
    2. thinkXXX 这个系列的名字真的用烂了,改个名字防臭。
    runningman
        5
    runningman  
       2019-02-14 19:02:23 +08:00 via iPhone
    记得已经下载了 可否加微信聊 270115861
    techone
        6
    techone  
    OP
       2019-02-16 11:58:18 +08:00
    最像 Laravel 的 Eloquent ORM 的 Go 版:ThinkORM
    https://github.com/thinkoner/torm
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1386 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:50 · PVG 07:50 · LAX 15:50 · JFK 18:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.