Skip to content

An example of using vercel to create golang serverless functionsw

License

Notifications You must be signed in to change notification settings

montanaflynn/vercel-golang-serverless-functions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vercel Golang Serverless Functions

Routing

Let's suppose we have an API with two routes:

/users
/users/:id

For vercel to make the routes we will the following directory structure:

/api/users.go
/api/users/[id].go

Since we don't want to have an /api/ we can add these rules to vercel.json:

{
  "framework": null,
  "rewrites": [
    { "source": "/:path*", "destination": "/api/:path*" }
  ],
  "redirects": [
    { "source": "/api/:path*", "destination": "/:path*", "permanent": true }
  ]
}

Development & Deployment

Since vercel expects non-standard go file naming tools like go vet will complain and you'll get errors and your editor such as vscode won't be able to find the types or do autocomplete. To work around this we can put the source files in a folder called pkg and then during deployment copy the code to the api directory with the names vercel wants.

Check out ./deploy.sh for an example of how this can work.

The only thing you need to do is make sure there's a function in every directory with a signature matching func Handler(w http.ResponseWriter, r *http.Request). Check out the example files that return the path and query parameters:

Deploying is as simple as installing the vercel cli and running vercel login once, then using vercel or vercel --prod and following the instructions once. Subsequent deployments will be a single command and give you a deployment URL.

About

An example of using vercel to create golang serverless functionsw

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published