Initializing Go 1.x Gin-Gonic App

Creating new Go 1.x Gin-Gonic Application#

User will be able to initialize Go 1.x Gin-Gonic Application using the following command:

lc code init --name "<AppName>" --module "<ModuleName>" --function "<FunctionName>" --language "go1.x" --web "gin"

File Structure#

The user will then be presented with a few files, similar to native go entry function:

<AppName>.<ModuleName>
โ”‚ .env << Environment Variable
โ”‚ .lyrid-definition.yml << Module Definition
โ”‚ go.mod
โ”‚ main.go << Main
โ”‚
โ””โ”€โ”€โ”€<FunctionName>
entry.go << Entry Function

Using Existing Go 1.x Gin-Gonic Application#

You can easily convert your existing Gin-Gonic to serverless, just in 3 steps !

1. COPY existing Gin-Gonic Application#

Rename your main.go to rawentry.go , then copy the whole directory of your existing Gin Application to the \<AppName\>.\<ModuleName\> directory.

note

Make sure you always save duplicate copy so you dont mess up.

2. EDIT and TEST#

Now, append your existing main function rawentry.go to <FunctionName>/entry.go in the Initialize() Function

Example

func main() {
router := gin.Default()
//your-pretty-awesome_codes
router.Run()
}

Copy to \<FunctionName>/entry.go

func Initialize() *gin.Engine {
router := gin.Default()
//your-pretty-awesome_codes
return router
}

In the entry file, rather than serving your router by using router.Run(), you need to return the router, so the main function will be able to run your application as serverless.

Now, try running main.go. It should work just like your existing native Gin Project.

3. SUBMIT#

Go back to your terminal , get into your working directory \<AppName\>.\<ModuleName\>, then call

lc code submit