编写GO的WEB开发框架 (一): 我需要一个什么样的框架?

写了多年的PHP,go刚出来时也了解过。过年时重新看了一些文档和文章,并着手用GO去写一个WEB开发框架,算是正式学习的加固。现在,框架已基本成型,在此想通过文字总结一下整个过程。 框架本身在稍后时间会上传至git,有兴趣的可关注下。

我需要一个什么样的框架?

由于长期写PHP,所以,自然是按PHP常见的开发方式来“定义”我的框架需求

  1. 动态规则路由

无需额外编写路由表,直接根椐请求的Path,通过反射,调用框架使用者编写的对应的Controller,比如: 访问 /Say 时,会调用 (this *Controller)Say() 方法

  1. 支持前置controll,在所有Controller执行前都会先被执行,类似基类

  2. 自动解释请求参数 包括GET,POST,COOKIE,上传文件等,框架使用者在自己编写的Controller方法可直接调用

func (this *Controller)Say(){
	fmt.Printf("%s",this.Post)
	fmt.Printf("%s",this.Cookie)
}
  1. response的封装,提供SetHeader,SetCookie,Render等方法
func (this *Controller)Say(){
	this.SetHeader("A","aaa")
	this.SetCookie("B","BB")
	THIS.Render("a.tpl",data)
}
  1. 内置基于file/memcache的session支持,并支持自定义sessionHandler
func (this *Controller)Say(){
	this.SessionStart()
	this.SessionSet("a", "aaa")
	for k, v := range this.Session {
		fmt.Printf("k=%s,v=%v\n", k, v)
	}
}
  1. 支持mysql/memcache的dao
func (this *Controller)Say(){
	user:= this.NewMySQLDao("table")
	user.Add(data)
	user.Get(where)
}
  1. 支持静态文件服务,状态信息服务
  2. 其它util

日志处理,ini配置文件读取,Validator

转载于:https://my.oschina.net/tim8670/blog/627675

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值