Skip to content

jfcgsilva/Go-Mongodb-REST-boilerplate

 
 

Repository files navigation

Go-Mongodb-REST-boilerplate

Build

This repo can be used as a starting point for backend development with Golang. It comes bundled with Docker. The development environment uses docker-compose to start dependent services like mongo.

A few things to note in the project:

Installation

1. Clone this repo

$ git clone git@github.com:umangraval/Go-Mongodb-REST-boilerplate.git your-app-name
$ cd your-app-name

2. Install dependencies

$ go mod vendor

Development

Start dev server

Starting the dev server also starts MongoDB as a service in a docker container using the compose script at docker-compose.yml.

$ go run main.go routes.go

Running the above commands results in

  • 🌏 API Server running at http://localhost:8080
  • MongoDB running at mongodb://localhost:27017/db

Packaging and Deployment

1. Build and run without Docker

$ go build 

2. Run Tests

$ cd tests
$ go test

3. Run with docker

$ docker build -t api-server .
$ docker run -t -i -p 8080:8080 api-server

4. Run with docker-compose

$ docker-compose up

Environment

To edit environment variables, create a file with name .env and copy the contents from .env.default to start with.

Var Name Type Default Description
JWT_SECRET string secret JWT secret to verify
PORT number 8080 Port to run the API server on
MONGO_URL string mongodb://localhost:27017/db URL for MongoDB

Directory Structure

+-- controllers
|   +-- personController.go
+-- db
|   +-- db.go
+-- handlers
|   +-- config.go
|   +-- logs.go
|   +-- response.go
|   +-- verifyJWT.go
+-- models
|   +-- models.go
+-- validators
|   +-- validators.go
+-- tests
|   +-- api_test.go
+-- routes
|   +-- routes.go
+-- uploaded
+-- vendor
+-- nginx
|   +-- dev.conf.d
|   |   +-- nginx.conf
+-- .env
+-- .env.default
+-- .gitignore
+-- docker-compose.yml
+-- Dockerfile
+-- go.mod
+-- go.sum
+-- main.go
+-- README.md

About

Sample rest APIs in golang with MongoDB, JWT, docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.6%
  • Dockerfile 1.4%
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy