Giter VIP home page Giter VIP logo

rest-stockmarket's Introduction

REST Stockmarket

REST Stockmarket sample REST API for a stockmarket-like application, It demonstrates how this can be implemented in Python, using MongoDB + Bottle, and different techniques to implement transactional behaviours with this stack.

A Stockmarket

  • GET /portofolio/X . Retrieves the portofolio for user "X" as a JSON object :

      { user : X , content :
       	{ market_name : 
       		{ stock_name : count, 
      		  stock_name : count
      		 }
      } 
    
  • POST /stockexchange/distribute. Distribute a set of stocks to a user. Accepts a JSON object with similar structure

      { 
      	"user" : X, content : ... 
      }
    
  • POST /stockexchange/trade. Exchange a set of stocks between two users. Accept a JSON object

      { 
      "portofolio_1" : { user : U1, content : ... }, 
      "portofolio_2" : { user : U2, content : ... }
      }
    

    The content described in portofolio_1 is transfered from U1 to U2, and the content from portofolio_2 is transfered from U2 to U1

Several implementation are featured:

  • naive_stockmarket.py : A Naive implementation, with no validation or transactional guarantees

  • lessnative_stockmarket.py : Features MongoDB atomic operations. No validation of transfers ..

  • lock_stockmarket.py : Performs validation of transfers. Ensure consistency by locking.

  • transac_stockmarket.py : Performs validation and use two-phase commits to ensure proper transactional behaviour

rest-stockmarket's People

Watchers

 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.