Skip to main content

REST, API, RESTFUL API

REST, API, REST API (separation of concern)

# REST 

- (Representational State Transfer) is a software architecture style that defines a set of constraints to be used for creating web services.
REST Technology is generally preferred to the more robust SOAP (Simple Object Access Protocol) technology because REST leverages less bandwidth, making it more suitable for internet usage.
REST is:
  • Architecture (engineering)
  • Protocol(HTTP) 
  • Stateless protocol (eg: http protocol)
#Rest Architecture design principal:
1. Client Server Architecture (express js api -> Restful api)
2. Http protocol and method
3. Http verbs (method used for data interchange->get, post, put, delete)
2. Stateless
3. JSON data interchange (from data -> json, error, response, json)
4. Communication (same protocol)

#REST Architecture
- Data needs to fetch in Get request.
- Data needs to insert in Post request.
- Data needs to update in Put request.
- Data needs to delete in Delete request.
Example:
router.delete('/:id', function (res, res, next){
      //rest architecture
}) //delete request

Wrong practice:
router.get('/delete:/id', function (res, res, next){
    //no rest architecture
}

# API

- API stands for Application Program Interface, which can be defined as a set of methods of communication between various software components.
- 2 program communication (eg. postman and server)
- db modelling, middleware, validation, routing end point (/auth, /login), data interchange (req <->res), no rendering, (get, post, put, delete)

#REST API

- REST API is an interface or communication protocol between a client and server intended to simplify the building of client-side software.
- Web Services that conform to the REST architectural style, called RESTful web services, provide interoperability between computer systems on the internet.
- RESTful API is an application program interface (API) that uses HTTP requests to GET, PUT, POST, DELETE data.
- Protocol (set of rules) eg: SMT(email send), FTP(file transfer), UDP
- SMTP and HTTP can not have communication because to communicate, protocol needs to be matched.
- No using framework application. Its not application, its restful API. Building API with express js (remove render code, templating engine). API works as communicating middleware.
- RESTFUL API  is not framework. It gives data. Eg: Rest API (store person). Of someone gives, he will take and if someone asks, he will give.
Store room outside and inside communication (Angular --(API)-> Postman)

# Stateful vs Stateless 
Stateful:
- In stateful protocol, state info is kept even after a transaction has been processed.
- FTP (stateful protocol) requiring a lot of interaction, the underlying protocol should be stateful ones. (eg. Filezilla) login is needed, connection-oriented.
Stateless
- In the stateless protocol, no info about the transaction is maintained after a transaction is procced. 
- There is no record of state is saved at server end.
- Independent request.

# Component-Based Architecture (Separation of concern) for Rest API.
- Modularized (separate modules and how they communicate - separation of concern.)
MVC
Model define DB schema (db modeling)
Controller- business logic (condition check main file -> middleware)
Query - DB queries for schema (no middleware function)
Routes- routing handles

# Model-Based Architecture
- Model -> (communication) -> Query file
- Query file -> (communication) -> Controller
- Controller -> (communication) -> Routes

#Reverse engineering and straight engineering

Comments

Popular posts from this blog

Javascript: Object to Array and Array to Object

Output: Final Array [ { mango: 1 }, { apple: 2 }, { banana: 3 }, { orange: 1 }, { watermelon: 1 }, { papaya: 1 } ] Output: Final Object { mango: 1, apple: 2, banana: 3, orange: 1, watermelon: 1, papaya: 1 }

Javascript: Functions (inbuilt function)

FUNCTIONS A function is basic building block. In functional programming language, everything is done using functions. but pure function needed. a function is of two type: pure function and impure function. In pure function, it wont effect immutable and  mutable function otherwise it will be impure function  Example 1: function hi(){       console.log('I am inside hi'); } hi() Example 2: IIFE (immediately invoke functional expression) ()() Example 3: (function(){        console.log('I am anonymous function'); })();  Example 4: function sendMail(option){  //mail send function      console.log('Option is', option);      var sinuna = option.email;      var to = option.to;      var santoo = option.sub;      var text = option.msg;      option.email = 'info@fascinating.com'      return true;      return '...

Javascript: Promise

Source:  https://www.geeksforgeeks.org/javascript-promises/ Promise is easier than callback because code is readable in promise.  Promise has also a method. Methods: then, catch, finally (these methods use callback) Benefits of Promises Improves Code Readability Better handling of asynchronous operations Better flow of control definition in asynchronous logic Better Error Handling A Promise has four states: fulfilled : Action related to the promise succeeded rejected : Action related to the promise failed pending : Promise is still pending i.e not fulfilled or rejected yet settled : Promise has fulfilled or rejected