Custom API Development Overview


Technology Used


  • Language - NodeJS
  • Hosting - AWS Ec2 Instance
  • Data Storage - AWS RDS - mysql

Background


An api (application program interface) is simply put a set of rules. These rules will define how your application components will communicate to each other.

Goal


The goal of all the apis I have written was to streamline data flow between components. More specifically, I have written web apis that define how a client will communicate to a server / database or both.

Rest api image

Decision


The decision to use a RESTful api was to decrease server load. The main reduction would be that each request is made independently and contains all of the data required for rendering on the client side. It is also easy to assign specific status codes to each request and the data can be returned in various types.

Firebase rest breakdown

Implementation


Node.js was used, using an MVC (model, view, controller) architecture for separation. The npm package manager makes it easy to install required packages / libraries. The various endpoints to the api determined where the data was sent. example: client -> server, server -> db, db -> client etc

Rest Break down diagram

Looking Back


Planning the api can be tough to do right depending on the requirements. This is excellent practice in dealing with http requests, responses and handling errors associated withe them.

Final Thoughts


From what I have seen so far and based on user tech today, using a restful api is a huge gain all around. It is used everywhere and gaining more knowledge about rest and apis is a huge win.