letsgo
Go api starter
Ingredients
Directory Structure
By default, your project's structure will look like this:
/controllers
: contains the core code of your application.
/database
: contains mongo-go-driver connector.
/helpers
: contains helpers functions of your application.
/middlewares
: contains middlewares of your application.
/routes
: directory contains RESTful api routes of your application.
/tests
: contains tests of your application.
/types
: contains the types/structures of your application.
Environment Configuration
letsGo uses godotenv
for setting environment variables. The root directory of your application will contain a .env.example
file.
copy and rename it to .env
to set your environment variables.
You need to create a .env.testing
file from .env.example
for running tests.
Setting up
- clone letsGo
- change package name in
go.mod
to your package name
- change the internal package (controllers, tests, helpers etc.) paths as per your requirement
- setup
.env
and .env.testing
- run
go mod download
to install dependencies
OR letsgo-cli
can be used to setup new project
install letsgo-cli
go get github.com/letsgo-framework/letsgo-cli
Create a new project
letsgo-cli init <import_namespace> <project_name>
- letsgo-cli init github.com myapp
Generates a new project called myapp in your GOPATH
inside github.com
and installs the default plugins through the glide.
Run : go run main.go
Build : go build
Test : go test tests/main_test.go
Coverall :
go test -v -coverpkg=./... -coverprofile=coverage.out ./...
goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN
Authentication
letsgo uses Go OAuth2 (https://godoc.org/golang.org/x/oauth2) for authentication.
Deploy into Docker
sudo docker run --rm -v "$PWD":/go/src/github.com/letsgo-framework/letsgo -w /go/src/github.com/letsgo-framework/letsgo iron/go:dev go build -o letsgo
sudo docker build -t sab94/letsgo .
sudo docker run --rm -p 8080:8080 sab94/letsgo
Thank You