This repo contains a simple command line tool and a rest server that checks the best price between two destinations.
For the system architecture I have decided to use the Clean Architecture proposed by Robert C. Martin (Uncle Bob).
Pull requests are welcome.
Make sure you have Git and Go installed in you machine.
Clone the repo:
git clone git@github.com:cyruzin/clean_architecture.gitInstall Go dependencies:
go mod downloadIf you want to modify the default values, rename the .env.example file to .env and change the values if you want.
mv .env.example .envGo to the cli folder:
cd cmd/cliThen, run the command below:
go run main.go BBB AAAGo to the routes folder:
cd cmd/routesThen, run the command below:
go run main.goDefault Base URL: http://localhost:8000
End-points:
GET - /route
Params required: departure, destination
Eg: http://localhost:8000/route?departure=BBB&destination=AAA
POST - /route
Params required: departure, destination, price
Eg: http://localhost:8000/route
JSON Payload:
{
"departure": "BBB",
"destination": "AAA",
"price": 76
}- go-chi
- json-iterator
- zerolog
- envconfig
MIT
