Example of typical and scalable RESTful API Server for Go
Usage
Usage
typical-rest-server
Run the application
typical-rest-server route
Print available API Routes
Configuration
Name
Type
Default
Required
APP_ADDRESS
string
:8089
Yes
PG_DBNAME
string
Yes
PG_HOST
string
localhost
PG_PASSWORD
string
pgpass
Yes
PG_PORT
int
5432
PG_USER
string
postgres
Yes
REDIS_DB
int
0
REDIS_DIAL_TIMEOUT
Duration
5s
Yes
REDIS_HOST
string
localhost
Yes
REDIS_IDLE_CHECK_FREQUENCY
Duration
1m
Yes
REDIS_IDLE_TIMEOUT
Duration
5m
Yes
REDIS_MAX_CONN_AGE
Duration
30m
Yes
REDIS_PASSWORD
string
redispass
REDIS_POOL_SIZE
int
20
Yes
REDIS_PORT
string
6379
Yes
REDIS_READ_WRITE_TIMEOUT
Duration
3s
Yes
SERVER_DEBUG
bool
false
Development Guide
Prerequisite
Install Go (It is recommend to install via Homebrewbrew install go)
Quick Start
./typicalw docker up # equivalent with `docker-compose up -d` (if infrastructure not up)
./typicalw pg reset # drop, create and migrate postgres database (if database not ready)
./typicalw readme # generate readme (if there is readme update)
./typicalw mock # generate mock (if require mock)
./typicalw test # run test
./typicalw run # run the application
./typicalw release # release the distribution
Commands
Bash Snippet
Usage
./typicalw build
Build the binary
./typicalw clean
Clean the project from generated file during build time
./typicalw run
Run the binary
./typicalw test
Run the testing
./typicalw mock
Generate mock class
./typicalw release
Release the distribution
./typicalw docker
Docker utility
./typicalw docker compose
Generate docker-compose.yaml
./typicalw docker up
Spin up docker containers according docker-compose
./typicalw docker down
Take down all docker containers according docker-compose