Sample app ================== ## Requirements * Golang (tested on 1.8+) * Docker (tested on 17.04.0-ce) * Mongodb (tested on 3.4.2+) ## Fetching & Building & Running fetching ```bash git clone http://dev.hexasoftware.com/stdio/sampleapp.git ``` building ```bash make ## OR #make local ``` Creating a release container 'sampleapp' ```bash make dist ``` running ```bash docker run --name mysampleappcontainer sampleapp ``` ## API: Url as: http://localhost:8080 Method | URL | params | --------|---------------------------------------|------------| GET | http://localhost:8080/customer/{id} | Id: as uuid POST | http://localhost:8080/customer/ | ## Structure: customersvc logic is separated from the 'webapp' mostly because I tend to separate reusable logic into packages/modules/etc this way is possible to create a simple CLI app consuming the customersvc logic ``` .. └── app : GOPATH ├── docker │   ├── docker-compose.yml │   ├── Dockerfile.build │   └── Dockerfile.dist ├── Makefile ├── README.md └── src └── sampleapp ├── cmd │   └── server │   └── main.go ├── customerhandlers.go ├── customersvc │   ├── customer.go │   ├── customersvc.go │   └── customersvc_test.go ├── routes.go ├── sampleapp.go ├── sampleapp_test.go ├── testutils │   └── testutils.go └── utils.go ```