Problem statement
- Establishing communication between Two applications running in same machine
- Using files or streams
- Remoting
-
Establishing communication between Two applications running in different machines
- Remoting (Technology specific)
- Webservices (SOAP) => (client is fat and data exchanges are bulky)
- HTTP Clients and data format is mostly json
- REST APIs
- GraphQL APIS
- GRPC (Google Remote Procedural calls)
-
HTTP
- Request
- to whom => url
- Action/verb:
- GET
- POST
- PUT
- DELETE
- HEAD
- headers
- body
- Response
- Status Code: 3 digit number (100-599)
- 1xx => information
- 2xx => success
- 3xx => Redirection
- 4xx => Client errors
- 5xx => server side error
- headers
- body
- Status Code: 3 digit number (100-599)
- Request
-
REST API is an architectural style.
- Think in terms of nouns and verbs
- nouns becomes resources
- verbs becoms actions
