如何在 Vercel 无服务器功能中使用 Go Gin?

How to use Go Gin in vercel serveless functions?

如何制作一个文件来处理 vercel 无服务器功能的所有路由?

默认情况下它使用内置处理程序,有什么方法可以使用 gin 模块来做同样的事情吗?

package handler

import "github.com/gin-gonic/gin"

/* get the post data and send the same data as response */

func Hi(c *gin.Context) {
    c.JSON(200, gin.H{
        "message": "Hello World!",
    })
}

如果我正确理解了你的问题,你只需要创建结构处理程序并创建一个方法“InitRoutes”返回带有所有 handleFuncs 的路由器

handleFuncs 也应该是 Handler 的方法

例如:

type Handler struct {
    // here you can inject services
}

func NewHandler(services *service.Service) *Handler {
    return &Handler{}
}

func (h *Handler) InitRoutes() *gin.Engine {
    router := gin.New()

    auth := router.Group("/group")
    {
        auth.POST("/path", h.handleFunc)
        auth.POST("/path", h.handleFunc)
    }

    return router
}

之后你应该将它注入你的 httpServer

srv := http.Server{
        Addr:           ":" + port,
        Handler:        Handler.InitRoutes(),
        MaxHeaderBytes: 1 << 20,
        ReadTimeout:    10 * time.Second,
        WriteTimeout:   10 * time.Second,
    }

srv.ListenAndServe()