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)
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)
- 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)
- 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
- 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
Post a Comment