Vercel 示例
本示例演示了如何将 Go Fiber 应用部署到 Vercel。
描述
本项目提供了将 Go Fiber 应用部署到 Vercel 的起点。它包含了必要的配置文件和代码,以便在 Vercel 上运行无服务器应用。
要求
- Go 1.18 或更高版本
- Git
- Vercel CLI
项目结构
api/index.go
:无服务器函数的主要入口点。vercel.json
:Vercel 的配置文件。go.mod
:Go 模块文件。
设置
-
克隆仓库
git clone https://github.com/gofiber/recipes.git
cd recipes/vercel -
安装依赖
go mod download
配置
确保根目录中存在 vercel.json
文件以正确处理路由。此文件会将所有请求重写到 api/index.go
处理器。
{
"rewrites": [
{ "source": "(.*)", "destination": "api/index.go" }
]
}
部署
-
安装 Vercel CLI
npm install -g vercel
-
登录 Vercel
vercel login
-
部署应用
vercel
按照提示完成部署。您的应用将被部署到 Vercel,并提供一个 URL。
示例用法
- 打开您的浏览器并导航到提供的 Vercel URL。
- 您应该会看到包含 URI 和路径的 JSON 响应。
代码概述
api/index.go
主 Go 文件设置 Fiber 应用,处理 HTTP 请求,并管理路由。
package handler
import (
"github.com/gofiber/fiber/v2/middleware/adaptor"
"github.com/gofiber/fiber/v2"
"net/http"
)
// Handler is the main entry point of the application. Think of it like the main() method
func Handler(w http.ResponseWriter, r *http.Request) {
// This is needed to set the proper request path in `*fiber.Ctx`
r.RequestURI = r.URL.String()
handler().ServeHTTP(w, r)
}
// building the fiber application
func handler() http.HandlerFunc {
app := fiber.New()
app.Get("/v1", func(ctx *fiber.Ctx) error {
return ctx.JSON(fiber.Map{
"version": "v1",
})
})
app.Get("/v2", func(ctx *fiber.Ctx) error {
return ctx.JSON(fiber.Map{
"version": "v2",
})
})
app.Get("/", func(ctx *fiber.Ctx) error {
return ctx.JSON(fiber.Map{
"uri": ctx.Request().URI().String(),
"path": ctx.Path(),
})
})
return adaptor.FiberApp(app)
}
结论
本示例为将 Go Fiber 应用部署到 Vercel 提供了基本设置。它可以进一步扩展和自定义,以适应更复杂应用的需求。