sarulabs / di-example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

di-example

REST API to manage a list of car stored in mongodb.

It shows how to use sarulabs/di in a web application.

More explanations can be found in this post:

Routes

Method URL Role JSON Body example
GET /cars List cars
POST /cars Insert car {"brand": "audi", "color": "black"}
GET /cars/{id} Get car
PUT /cars/{id} Update car {"brand": "audi", "color": "black"}
DELETE /cars/{id} Delete car

Dependencies and vgo

The dependencies are handled with vgo. You need to install vgo first:

go get -u golang.org/x/vgo

Then you can use vgo run main.go to start the application.

Environment

You need to set some environment variables before running this application:

  • SERVER_PORT: the port for the rest api (eg: 8080)
  • MONGO_URL: the mongodb address (eg: 127.0.0.1:27017)

To use the default values you can use the default_env.sh script:

source default_env.sh
vgo run main.go

Run with docker

It is also possible to run this application with docker compose:

docker-compose -f docker/compose.yml up --build

Or if you only want to run mongo in docker and not the rest api:

docker-compose -f docker/mongo.yml up

About

License:MIT License


Languages

Language:Go 97.9%Language:Dockerfile 1.7%Language:Shell 0.4%