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

Deploy react app on digitalocean using nginx

Source:  https://www.learnwithjason.dev/blog/deploy-nodejs-ssl-digitalocean/ Source:  https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04 Source:  https://www.youtube.com/watch?v=vRrhQwNixlc https://www.youtube.com/watch?v=pyxXCwgWdMw https://dev.to/xarala221/the-easiest-way-to-deploy-a-react-web-application-2l8a 1. Create a new droplet on DigitalOcean. Choose the $5/month option with Ubuntu 16.04.1 x64. Select a region closest to your users. 2. Finally, add your SSH key and ls -la ~/.ssh # This copies the key so you can paste with command + V pbcopy < ~/.ssh/id_rsa.pub # This prints it in the command line for manual copying cat ~/.ssh/id_rsa.pub   3.  Add your SSH key to the droplet Click “Add SSH Key” to save it, then make sure it’s selected, name your droplet, and hit the big “Create” button to get your server online. Your new droplet will display

Gallery

https://fancyapps.com/fancybox/3/ <!-- 1. Add latest jQuery and fancybox files --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" /> <script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js"></script> $ ( function () { if ( $ ( "[data-fancybox]" ). length ){ $ ( "[data-fancybox]" ). fancybox (); } });

Javascript: Array

ARRAY // homogenious and heterogenious array  var a = 'I am here'; var status = true; //array -> multiple values var arr = new Array(); //constructor method var arr1 = []; //bracket notation Example: var hobbies = ['dancing', true, 3423,{ //multiple type data collection values dance: true, singing: false }, []];