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: Prototype-based OOP

Prototype-based OOP Prototype-based programming is a style of OOP when inheritance is implemented via the process of cloning existing objects. In class-based OOP inheritance is built around the "parent-child" relationship between classes. Advantages: Objects and classes can be extended at runtime. eg: js(only 2018). JS Object Oriented Programming language but style: prototype. Prototype based Inheritance functional constructor(no class) as blueprint properties collection. with properties, we can make multiple instances.

Javascript Conference: Functional- Map, Reduce and Filter vs Object Oriented Programming

What is functional programming? and why? Source:  https://www.youtube.com/watch?v=e-5obm1G_FY A programming paradigm a coding style a mindset a sexy, buzz-wordy trend safer, easier to debug/maintain established community Not functional:  var name = “Anjana”;  var greeting = “Hi, I’m ”;  console.log(greeting + name);  Output : “Hi, I’m Anjana” Functional:   function greet(name) {         return “Hi, I’m ” + name;  }  greet(“Anjana”);  Output: “Hi, I’m Anjana” Avoid side effects use “pure” functions Not pure:   var name = “Anjana”;  function greet() {        console.log(“Hi, I’m ” + name);  } Pure:  function greet(name) {      return “Hi, I’m ” + name;  } Use higher-order functions functions can be inputs/outputs function makeAdjectifier(adjective) {      return function (string...