README
Gola CLI
Simple web app CLI for Go lang
The Gola CLI is based on the Fiber, Mongo, Validator and Godotenv library.
It uses the Fiber web framework to manage the web app
and the Mongo package to handle the MongoDB query and connection
and the Validator to handle the validation of dtos
and Godotenv for the configuration.
It's very opinionated on how the code should be structured.
Prerequisite
Node.js v12+
Installation
npm install gola -g
Usage
To create a new project
gola init [project_name]
To add new resource in existing project
gola resource [resource_name]
To run a project
gola run
To build a project
gola build
Code Structure
myapp (folder) - App folder
│
│
└───.env (file) - Environment config file
│
│
└───main.go (file) - Entry file
│
│
└───global (folder) - Package for global util functions
│ │
│ │__ global.go (file)
│
│
└───server (folder) - Package for core web server files
│ │
│ │__ server.go (file)
│
│
└───[resource_name] (folder) - Resource package. e.g. (user, project, content)
│ │
│ │__ controller.go (file) - All routing for resource goes here
│ │
│ │__ service.go (file) - Business logic to handle all route goes here
│ │
│ │__ dto.go (file) - Dto validation object goes here
│
│
└───bin (folder) - Executable file would be placed here after build command
│ │
│ │__ myapp (file) - Executable
│
│
└───go.mod (file) - Go module registry like package.json for node.js
│
│
│
└───go.sum (file) - Go module registry like package-lock.json for node.js
Example Usage
$ gola init myapp
$ cd myapp
$ gola resource user
$ gola run
After gola run
command, follow this link
All Commands
Command | Usage | Description |
---|---|---|
Init | gola init myapp | Initialize new project |
Resource | gola resource user | Creates new resource in existing app, it creates new route with its own controller, service and dto files |
Run | gola run | Runs the project |
Test | gola test | Run all tests |
Build | gola build | Builds the project and place created executable in bin directory |
Open | gola open vscode | Opens the project in vscode IDE |