Skip to content

generate entire CRUD backend for golang echo and postgres with one command

Notifications You must be signed in to change notification settings

PrashantBtkl/goforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoForge

PyPi package version PyPi downloads PyPI version

generate the entire CRUD backend for golang echo and postgres with one command 💙

Description

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.

Prerequisites

snap install sqlc
go install golang.org/x/tools/cmd/goimports@latest

Installation

pip install goforge

Quick start

generate the project code

$ goforge -c example.yml

delete the project

$ goforge -c example.yml -d

API Configuration Documentation

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"

About

generate entire CRUD backend for golang echo and postgres with one command

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published