Golang Gin web framework template project
Steps to run Go Template project on local
- Server is a golang gin framework developed at Go v1.20.08+
- Before running update following files according to environment:
- Update db related config in -
database.json
- Server requires mongodb database (version 4.4.13)
- Update db related config in -
- To run:
go mod tidy
go run main.go
- To Build:
- To log errors from commandline, prepare build in
Production
mode. - Set
IS_PRODUCTION = true
in main.go file for production build. And create build with below command.go build -tags prod
- To log errors from commandline, prepare build in
Test the gotemplate project
-
GoTemplate.postman_collection.json
postman collection.
Pprof usage
- To check pprof uncomment pprof call from main file.
- Use profiling for your server see the documentation https://pkg.go.dev/net/http/pprof
- also after starting pprof server use this command to check profiling
go tool pprof http://localhost:YOUR_PPROF_PORT/debug/pprof/heap
JWT Usage
- To use jwt authentication and its variables uncomment decodeToken method to access all token variables.
MySQL Connection
- To get Mysql DB connection using provided json file just uncomment the
InitMysqlDBConnectionUsingJson
method from main file.
MSSQLServer Connection
- To get sql server connection using provided json file just uncomment the
InitSQLServerConnectionUsingJson
method from main file. - There are two ways we can get connection object.
- first is using GetSQLServerDAO() method:
GetSQLServerDAO()
returns the default sql server connection object. - second is using GetSQLServerDAOWithHost("hostName") method:
GetSQLServerDAOWithHost("hostName")
returns the sql server connection object of specified HostName. This method is used when we need to get connection object, other than default database.
- first is using GetSQLServerDAO() method:
Immudb Operations
- To get immudb server connection using provided json file just uncomment the
InitImmuDBConnectionUsingJson
method from main file. - To get the connection object GetImmuDAOWithHost(coreimmudb.DefaultHostName) method is used.
GetImmuDAOWithHost(coreimmudb.DefaultHostName)
returns the immudb server connection object of specified HostName. This method is used when we need to get connection object, other than default database.
Note: All Immudb operations' result is in Base64 format.
database json format
{
"MongoConfig": [
{
"hostName": "CoreStudio",
"server": "localhost",
"port": 27017,
"username": "",
"password": "",
"database": "CoreStudio",
"isDefault": true
}
],
"ImmudbConfig":[{
"hostName": "ImmuDbHost",
"server": "localhost",
"port": 3322,
"database": "",
"username": "",
"password": "",
"isDefault": true
}],
"MysqlConfig": [
{
"hostName": "MySQLHost",
"server": "localhost",
"port": 3306,
"username": "",
"password": "",
"database": "",
"isDefault":true
}
],
"SqlServerConfig": [
{
"connMaxLifetime": 0,
"database": "",
"dbType": "SQLSERVER",
"hostName": "SQLServerHost",
"isDefault": true,
"maxIdleConns": 0,
"maxOpenConns": 2,
"parameters": [],
"password": "",
"port": 65142,
"protocol": "",
"server": "",
"sqlParameters": [
{
"key": "testKey",
"value": "testValue"
},
{
"key": "boolFlag",
"value": "false"
},
{
"key": "intFlag",
"value": "100"
}
],
"username": ""
}
]
}