Documentation ¶
Overview ¶
flute - 一个简单的golang web api 开发框架
Overview 开发这套框架主要是因为在开发api中,我找不到一个比较好的框架,ruby的框架主要还是太多东西了,我希望有一个简单的框架,同时性能更好一些的框架, 所以开发这套框架 这套框架的路由的想法来自rails的方法, 目前实现了Resources方法. 这套框架 这套框架可以干什么呢? 仅仅能开发web api而已,没有其他的功能. 目前Render方法还没做好, 如果你有耐心请等一等, 如果没有可以用http你们的包,代码不多可以直接看代码, 封装都很薄的.
下面建立一个简单的例子, 一个简单的hello word.
flute.HandleFunc("/", "GET", func(c *flute.Context) { c.RenderText(200, "hello word") }) flute.Start(":1234")
github的wiki后续会加入更多的例子
Index ¶
- Variables
- func HandleFunc(path string, method string, f func(c *Context))
- func LoadConfig() error
- func Resources(path string, controller ControllerInterface, ...)
- func Start() error
- func StartLog()
- type Context
- type Controller
- func (controller *Controller) Create()
- func (controller *Controller) Delete()
- func (controller *Controller) GetVars(key string) string
- func (controller *Controller) Index()
- func (controller *Controller) Init(context *Context)
- func (controller *Controller) ParamsFile(key string) (f multipart.File, h *multipart.FileHeader, e error)
- func (controller *Controller) ParamsFrom(key string) string
- func (controller *Controller) ParamsJson() (json *paramsJson.Json, e error)
- func (controller *Controller) Show()
- func (controller *Controller) Update()
- type ControllerInterface
- type Middleware
- type MiddlewareInterface
- type Router
Constants ¶
This section is empty.
Variables ¶
View Source
var Config *config.Config
View Source
var Logger seelog.LoggerInterface
View Source
var Message map[string]string
Functions ¶
func Resources ¶
func Resources(path string, controller ControllerInterface, middlewares ...MiddlewareInterface)
restful 路由风格
Types ¶
type Context ¶
type Context struct { ResponseWriter http.ResponseWriter Request *http.Request }
这里把http的两个请求和成一个新的数据结构,加入一些方法
type Controller ¶
type Controller struct { *Context // contains filtered or unexported fields }
controller 基类
func (*Controller) Create ¶
func (controller *Controller) Create()
func (*Controller) Delete ¶
func (controller *Controller) Delete()
func (*Controller) Index ¶
func (controller *Controller) Index()
func (*Controller) Init ¶
func (controller *Controller) Init(context *Context)
func (*Controller) ParamsFile ¶
func (controller *Controller) ParamsFile(key string) (f multipart.File, h *multipart.FileHeader, e error)
获取文件
func (*Controller) ParamsJson ¶
func (controller *Controller) ParamsJson() (json *paramsJson.Json, e error)
获取body内容, 并解析成json, 详细看github.com/bitly/go-simplejson的用法
func (*Controller) Show ¶
func (controller *Controller) Show()
func (*Controller) Update ¶
func (controller *Controller) Update()
type ControllerInterface ¶
type ControllerInterface interface { Init(context *Context) Index() Show() Create() Update() Delete() }
controller 接口, 和rails基本类似
type Middleware ¶
type Middleware struct {
*Context
}
中间件类, 是一个类似controller的东西, 可以用户在发生组restful路由的时候进行定制 比如插入日子, 进行权限判断
type MiddlewareInterface ¶
type Router ¶
内部路由
var Flute *Router
func (*Router) Resources ¶
func (r *Router) Resources(path string, controller ControllerInterface, middlewares []MiddlewareInterface)
内部的restful路由实现, 还有中间件的调用, 总是感觉不优雅, 如果你有更好的思路,请告诉我,谢谢
Source Files ¶
Click to show internal directories.
Click to hide internal directories.