tappoz / RESTfulComparisons

A comparison of different programming languages (java, golang, javascript/node.js) and frameworks at implementing a RESTful API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Financial Data

This project aims at showing differences in implementing the same bit of functionality with different programming languages or frameworks.

The applications developed in this project are providing some RESTful endpoints (HTTP GET, POST, etc.) where some path/query parameters can be specified, then the idea is to retrieve a JSON object from a remote API according to those parameteres, then adapting that remote JSON to some specific needs (get/set etc.), then showing the outcome as a reply to the original request to the RESTful endpoints.

Architecture

All the entities run on their dedicated docker container.

The backend service can be provided by 3 different applications:

  • The Node.js and Express.js application using the request module to handle the HTTP protocol and winston as the logging framwork, grunt as the task runner;
  • The Java application using Dropwizard as the MVC implementation and Dagger for dependency injection along with Gradle as the building tool;
  • The go (golang) application using logrus as the logging framework and gorilla as a set of utilities for the HTTP level.

The frontend uses React (React.js) and the D3.js data visualization library.

There is also a redis cache with a GUI, but they are not yet integrated with the orchestration.

Implementations

Running environment

A handy virtual machine containing docker and the code from the various parts of the architecture has been provided at this path: vagrant-stuff.

About

A comparison of different programming languages (java, golang, javascript/node.js) and frameworks at implementing a RESTful API


Languages

Language:Java 57.2%Language:JavaScript 23.7%Language:Go 11.4%Language:Shell 3.6%Language:Ruby 3.5%Language:HTML 0.6%