This tool is designed to start a project and edit the files later. It uses sqlc to generate all the sql related code. Make sure sqlc, goimports, gofmt, and docker are installed.
snap install sqlc
go install golang.org/x/tools/cmd/goimports@latest
pip install goforge
generate the project code
$ goforge -c example.yml
delete the project
$ goforge -c example.yml -d
edit the yaml as per your requirements
project_path: "example" # specifies the root directory for the project
schema_file: "example.sql" # defines the sql schema file for the project
project_mod: "example.com/my_crud_app" # go.mod project name
db:
setup_postgres_local: true # setups a postgres docker instance for seamless testing, set false if you want to connect with your db instance
# host, port, dbname, user and password are accessed only if setup_postgres_local = false, you can skip these values if setup_postgres_local = true
host: localhost
port: 5432
dbname: postgres
user: postgres
password: postgres123
handlers:
- name: CreateUser # handler function name
path: "/v1/api/user" # api path
sql:
name: CreateUser # sqlc model method name
annotation: exec # annotations compatible with sqlc, for eg: "one", "many" and "exec"
query: "INSERT INTO users (name, email) VALUES ($1, $2)"
request:
method: "POST"
- name: GetUsers
path: "/v1/api/users"
sql:
name: GetUsers
annotation: many
query: "SELECT id, name, email FROM users LIMIT $1 OFFSET $2"
request:
method: "GET"