Faygo Go Web API 利器开源项目

我要开发同款
匿名用户2017年02月24日
96阅读

技术信息

开源地址
https://github.com/henrylee2cn/faydoc
授权协议
Apache

作品详情

Faygo概述

Faygo使用全新架构,是最合适开发API接口的GoWeb框架。用户只需定义一个structHadler,就能自动绑定、验证请求参数并生成在线API文档。

最新版本版本号

v1.0

安装要求

GoVersio≥1.8

快速使用

方式一源码下载

go get -u -v github.com/herylee2c/faygo

方式二部署工具(Gotofay)

go get -u -v github.com/herylee2c/fayfay commad [argumets]The commads are:        ew        创建、编译和运行(监控文件变化)一个新的faygo项目        ru        编译和运行(监控文件变化)任意一个已存在的golag项目fay ew appame [apptpl]        appame    指定新faygo项目的创建目录        apptpl     指定一个faygo项目模板(可选)fay ru [appame]        appame    指定待运行的golag项目路径(可选)框架特性

一个 structHadler 搞定多件事:

定义Hadler/Middleware

绑定与验证请求参数

生成Swagger2.0API在线文档

数据库ORM映射

Hadler与Middleware完全相同,都是实现Hadler接口(fuc或struct类型),共同构成路由操作链,只是概念层面的说法不同

支持多种网络类型:

网络类型配置et_types值HTTPhttpHTTPS/HTTP2(TLS)httpsHTTPS/HTTP2(Let'sEcryptTLS)letsecryptHTTPS/HTTP2(Let'sEcryptTLSoUNIXsocket)uix_letsecryptHTTP(UNIXsocket)uix_httpHTTPS/HTTP2(TLSoUNIXsocket)uix_https

支持单服务单监听、单服务多监听、多服务多监听等,多个服务的配置信息相互独立

基于 httprouter 开发高性能路由,支持链式与树形两种注册风格,支持灵活的静态文件路由(如DirFS、RederFS、MarkdowFS等)

支持平滑关闭、平滑升级,提供fay工具进行新建项目、热编译、元编程

采用最强大的 pogo2 作为HTML渲染引擎

提供近似LRU的文件缓存功能,主要用途是静态文件缓存

跨平台的彩色日志系统,且同时支持cosole和file两种输出形式(可以同时使用)

提供Sessio管理功能

支持Gzip全局配置

提供XSRF跨站请求伪造安全过滤

大多数功能尽量使用简洁的ii进行配置来避免不必要的重新编译,并且这些配置文件支持自动补填默认值

提供 gorm、xorm、sqlx、directSQL、Websocket、ii 、httpcliet 等很多常用扩展包

简单示例

package maiimport (    // "mime/multipart"    "time"    "github.com/herylee2c/faygo")type Idex struct {    Id        it      `param:""`    Title     strig   `param:""`    Paragraph []strig `param:""`    Cookie    strig   `param:""`    // Picture         *multipart.FileHeader `param:""`}fuc (i *Idex) Serve(ctx *faygo.Cotext) error {    if ctx.CookieParam("faygoID") == "" {        ctx.SetCookie("faygoID", time.Now().Strig())    }    retur ctx.JSON(200, i)}fuc mai() {    app := faygo.New("myapp", "0.1")    // Register the route i a chai style    app.GET("/idex/:id", ew(Idex))    // Register the route i a tree style    // app.Route(    //     app.NewGET("/idex/:id", ew(Idex)),    // )    // Start the service    faygo.Ru()}/*http GET:    https://localhost:8080/idex/1?title=test&p=abc&p=xyzrespose:    {        "Id": 1,        "Title": "test",        "Paragraph": [            "abc",            "xyz"        ],        "Cookie": "2016-11-13 01:14:40.9038005 +0800 CST"    }*/

功能介绍

Faygo 概述 Faygo 使用全新架构,是最合适开发API接口的Go Web框架。用户只需定义一个struct Handler,就能自动绑定、验证请求参数并生成在线API文档。 最新版本 版...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论