<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          FaygoGo Web API 利器

          聯(lián)合創(chuàng)作 · 2023-09-20 06:10

          Faygo

          概述

          Faygo 使用全新架構(gòu),是最合適開發(fā)API接口的Go Web框架。用戶只需定義一個struct Handler,就能自動綁定、驗證請求參數(shù)并生成在線API文檔。

          最新版本

          版本號

          v1.0

          安裝要求

          Go Version ≥1.8

          快速使用

          • 方式一 源碼下載

          go get -u -v github.com/henrylee2cn/faygo
          go get -u -v github.com/henrylee2cn/fay
          fay command [arguments]
          
          The commands are:
                  new        創(chuàng)建、編譯和運(yùn)行(監(jiān)控文件變化)一個新的faygo項目
                  run        編譯和運(yùn)行(監(jiān)控文件變化)任意一個已存在的golang項目
          
          fay new appname [apptpl]
                  appname    指定新faygo項目的創(chuàng)建目錄
                  apptpl     指定一個faygo項目模板(可選)
          
          fay run [appname]
                  appname    指定待運(yùn)行的golang項目路徑(可選)

          框架特性

          • 一個 struct Handler 搞定多件事:

            • 定義 Handler/Middleware

            • 綁定與驗證請求參數(shù)

            • 生成 Swagger2.0 API 在線文檔

            • 數(shù)據(jù)庫 ORM 映射

          • Handler與Middleware完全相同,都是實現(xiàn)Handler接口(funcstruct類型),共同構(gòu)成路由操作鏈,只是概念層面的說法不同

          • 支持多種網(wǎng)絡(luò)類型:

          網(wǎng)絡(luò)類型 配置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
          • 支持單服務(wù)單監(jiān)聽、單服務(wù)多監(jiān)聽、多服務(wù)多監(jiān)聽等,多個服務(wù)的配置信息相互獨(dú)立

          • 基于 httprouter 開發(fā)高性能路由,支持鏈?zhǔn)脚c樹形兩種注冊風(fēng)格,支持靈活的靜態(tài)文件路由(如DirFS、RenderFS、MarkdownFS等)

          • 支持平滑關(guān)閉、平滑升級,提供fay工具進(jìn)行新建項目、熱編譯、元編程

          • 采用最強(qiáng)大的 pongo2 作為HTML渲染引擎

          • 提供近似LRU的文件緩存功能,主要用途是靜態(tài)文件緩存

          • 跨平臺的彩色日志系統(tǒng),且同時支持console和file兩種輸出形式(可以同時使用)

          • 提供Session管理功能

          • 支持Gzip全局配置

          • 提供XSRF跨站請求偽造安全過濾

          • 大多數(shù)功能盡量使用簡潔的ini進(jìn)行配置來避免不必要的重新編譯,并且這些配置文件支持自動補(bǔ)填默認(rèn)值

          • 提供 gormxorm、sqlx、directSQLWebsocket、ini 、http client 等很多常用擴(kuò)展包

          faygo struct handler 多重用途合一

          簡單示例

          package main
          
          import (
              // "mime/multipart"
              "time"
              "github.com/henrylee2cn/faygo"
          )
          
          type Index struct {
              Id        int      `param:""`
              Title     string   `param:""`
              Paragraph []string `param:""`
              Cookie    string   `param:""`
              // Picture         *multipart.FileHeader `param:""`
          }
          
          func (i *Index) Serve(ctx *faygo.Context) error {
              if ctx.CookieParam("faygoID") == "" {
                  ctx.SetCookie("faygoID", time.Now().String())
              }
              return ctx.JSON(200, i)
          }
          
          func main() {
              app := faygo.New("myapp", "0.1")
          
              // Register the route in a chain style
              app.GET("/index/:id", new(Index))
          
              // Register the route in a tree style
              // app.Route(
              //     app.NewGET("/index/:id", new(Index)),
              // )
          
              // Start the service
              faygo.Run()
          }
          
          /*
          http GET:
              http://localhost:8080/index/1?title=test&p=abc&p=xyz
          response:
              {
                  "Id": 1,
                  "Title": "test",
                  "Paragraph": [
                      "abc",
                      "xyz"
                  ],
                  "Cookie": "2016-11-13 01:14:40.9038005 +0800 CST"
              }
          */
          瀏覽 34
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  午夜视频免费看 | 日本一区二区三区在线观看网站 | 欧美男女日逼 | 欧美自拍小视频 | 免费的av |