1 欢迎使用 faygo
Faygo 使用全新架构,是最合适开发API接口的Go Web框架。用户只需定义一个struct Handler,就能自动绑定、验证请求参数并生成在线API文档。
当前版本号
v1.0
框架特性
一个
struct Handler
搞定多件事:- 定义 Handler/Middleware
- 绑定与验证请求参数
- 生成 Swagger2.0 API 在线文档
- 数据库 ORM 映射
Handler与Middleware完全相同,都是实现Handler接口(
func
或struct
类型),共同构成路由操作链,只是概念层面的说法不同- 支持多种网络类型:
网络类型 | 配置net_types 值 |
---|---|
HTTP | http |
HTTPS/HTTP2(TLS) | https |
HTTPS/HTTP2(Let’s Encrypt TLS) | letsencrypt |
HTTPS/HTTP2(Let’s Encrypt TLS on UNIX socket) | unix_letsencrypt |
HTTP(UNIX socket) | unix_http |
HTTPS/HTTP2(TLS on UNIX socket) | unix_https |
- 支持单服务单监听、单服务多监听、多服务多监听等,多个服务的配置信息相互独立
- 基于
httprouter
开发高性能路由,支持链式与树形两种注册风格,支持灵活的静态文件路由(如DirFS、RenderFS、MarkdownFS等) - 支持平滑关闭、平滑升级,提供fay工具进行新建项目、热编译、元编程
- 采用最强大的
pongo2
作为HTML渲染引擎 - 提供近似LRU的文件缓存功能,主要用途是静态文件缓存
- 跨平台的彩色日志系统,且同时支持console和file两种输出形式(可以同时使用)
- 提供Session管理功能
- 支持Gzip全局配置
- 提供XSRF跨站请求伪造安全过滤
- 大多数功能尽量使用简洁的ini进行配置来避免不必要的重新编译,并且这些配置文件支持自动补填默认值
- 提供
gorm
、xorm
、sqlx
、directSQL
、Websocket
、ini
、http client
等很多常用扩展包