This codebase help a new Go developer in developing a REST API using Go. This codebase included with some pre bundle service or helper like authentication, logging, and predefined configuration.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Prequisites packages:
- Go (Go Programming Language)
- Dep (Go Dependencies Management Tool)
- Make (Automated Execution using Makefile)
Optional packages:
- GoReleaser (Go Automated Binaries Build)
- Docker (Application Containerization)
Below is the instructions to make this codebase running:
- Create a Go Workspace directory and export it as the extended GOPATH directory
cd <your_go_workspace_directory>
export GOPATH=$GOPATH:"`pwd`"
- Under the Go Workspace directory create a source directory
mkdir -p src/<your_repository_domain>/<your_username>/<your_repository>
- Move to the created directory and pull codebase
cd src/<your_repository_domain>/<your_username>/<your_repository>
git clone -b master https://github.com/dimaskiddo/codebase-go-rest.git .
- Run following command to change the codebase repository URL to your own
make rebase REBASE_URL="<your_repository_domain>/<your_username>/<your_repository>"
- Run following command to renew and pull dependecies package
make init
make vendor
- Until this step you already can run this code by using this command
make run
Currently the test is not ready yet :)
Make sure your your go script does not relate to github.com/dimaskiddo/codebase-go-rest anymore. To build this codebase to binaries for distribution purposes you can run following command:
make release
The build result will shown in build directory
- Go - Go Programming Languange
- Dep - Go Dependency Management Tool
- GoReleaser - Go Automated Binaries Build
- Make - GNU Make Automated Execution
- Docker - Application Containerization
- Dimas Restu Hidayanto - Initial Work - DimasKiddo
See also the list of contributors who participated in this project
You can seek more information for the make command parameters in the Makefile