Git Product home page Git Product logo

eden-garden's Introduction

Product CRUD APIs service written in Clojure using MongoDB Replica Set Cluster

REST API service to Add, Update, Fetch and Query products from MongoDB Replica Set Cluster. This is based on Ecommerce Application example from MongoDB in Action book.

Prerequisites

You will need Java, Leiningen, Vagrant to run this project.

Running

Start MongoDB Cluster

tools/vagrant directory contains a VagrantFile with setup script to provision a vagrant box with MongoDB installation. It will also spin up a MongoDB Replica Set Cluster with 3 mongod instances. Follow below commands to start vagrant box:

cd tools/vagrant
vagrant up
vagrant ssh

Now connect to mongodb client and initiate the Replica Set Cluster:

mongo --port 40000
> rs.initiate()

Add other nodes to cluster. We will add one node as secondary other as arbiter.

myapp:OTHER> rs.add("mongodb-cluster:40001")
myapp:PRIMARY> rs.add("mongodb-cluster:40002",{arbiterOnly:true})

Verify the cluster state. There should be 3 members(primary, secondary, arbiter) in cluster.

myapp:PRIMARY> rs.status();

Now add mongodb-cluster entry to your local machine /etc/hosts file

echo "192.241.33.25  mongodb-cluster" >> /etc/hosts

NOTE: While restarting Vagrant box, pass --provision flag to vagrant up command as below. This is required to start Mongodb Cluster on box reboot.

vagrant up --provision

Using Lein

To start a web server for the application, run:

lein run

This will start the server on Port 9099. Run below curl command to verify

curl http://localhost:9099/ping

Using Java

Build the Jar using below command

lein uberjar

and then run the following command to start the API server

java -jar target/eden-garden-0.1.0-SNAPSHOT-standalone.jar

Use the curl command mentioned above to verify.

Using Postman to use APIs

Export the Postman Collection to Postman. This collections includes the sample request for all the APIs.

eden-garden's People

Contributors

pardeep-singh avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.