RESTful Web API â
RESTful Web API (Application Programming Interface)Â āļāļ·āļāļĢāļđāļāđāļāļāļŦāļāļķāđāļāļāļāļÂ APIÂ āļāļĩāđāđāļāđāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄÂ REST (Representational State Transfer)Â āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļĨāļāđāļāļĨāļĩāđāļĒāļāļāđāļāļĄāļđāļĨāļĢāļ°āļŦāļ§āđāļēāļāđāļāļĢāļ·āđāļāļāļāļāļĄāļāļīāļ§āđāļāļāļĢāđāđāļāđāļāļĢāļ·āļāļāđāļēāļĒ āļāļķāđāļ RESTful Web API āđāļāļĩāđāļĒāļ§āļāđāļāļāļāļąāļ Backend āļāļĒāđāļēāļāļĄāļēāļ āđāļāļ·āđāļāļāļāļēāļ Backend āļāļ·āļāļŠāđāļ§āļāļāļĩāđāļāļģāļŦāļāđāļēāļāļĩāđāđāļāđāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļĩāđāđāļŦāđāļāļĢāļīāļāļēāļĢāļāđāļāļĄāļđāļĨāđāļĨāļ°āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāđāļēāļāđ āđāļāļĒ RESTful Web API āđāļāđāļāļ§āļīāļāļĩāļāļēāļĢāļāļĩāđāđāļāđāļāļąāļāļāļĒāđāļēāļāđāļāļĢāđāļŦāļĨāļēāļĒāđāļāļāļēāļĢāļāļāļāđāļāļāđāļĨāļ°āļāļąāļāļāļē Backend āđāļāļ·āđāļāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļŠāļ·āđāļāļŠāļēāļĢāļāļąāļāđāļāļĨāđāļāđāļāļāđ (Client) āđāļāđāļāļĒāđāļēāļāļĄāļĩāļāļĢāļ°āļŠāļīāļāļāļīāļ āļēāļ āđāļāļĒāļĄāļĩāļāļ§āļēāļĄāļŠāļąāļĄāļāļąāļāļāđāļāļąāļāļāļąāļāļāļĩāđ:
āļĄāļĩāļāļāļāļ§āļēāļĄāļāļĩāđāļŠāļĢāļļāļāļāļĩāļĄāļēāļāđāđāđāļāļĒāļēāļāļĄāļēāđāļāļ°āļāļģāļāļĢāļąāļāļāļĄ
āļāļēāļĢāļāļģāļāļēāļāļāļāļ RESTful Web API āđāļ Backend â
- āļāļąāļāļāļēāļĢāļāļĢāļąāļāļĒāļēāļāļĢ (Resources Management): Backend āļāļ°āđāļāđāļāļāđāļāļĄāļđāļĨāđāļāļāļēāļāļāđāļāļĄāļđāļĨāļŦāļĢāļ·āļāļāļĩāđāđāļāđāļāļāđāļāļĄāļđāļĨāļāļ·āđāļāđ āđāļāļĒ RESTful Web API āļāļ°āđāļāđāļāļāļąāļ§āļāļĨāļēāļāđāļāļāļēāļĢāļĢāļąāļāļāļģāļāļāļāļēāļāđāļāļĨāđāļāđāļāļāđāđāļĨāļ°āļāļąāļāļāļēāļĢāļāļąāļāļāļĢāļąāļāļĒāļēāļāļĢāđāļŦāļĨāđāļēāļāļąāđāļ āđāļāđāļ āļāļēāļĢāđāļāļīāđāļĄāļāđāļāļĄāļđāļĨāđāļŦāļĄāđ āļāļēāļĢāļāļąāļāđāļāļāļāđāļāļĄāļđāļĨ āļāļēāļĢāļĨāļāļāđāļāļĄāļđāļĨ āđāļĨāļ°āļāļēāļĢāļāļķāļāļāđāļāļĄāļđāļĨāļāļāļāļĄāļē
- āļāļēāļĢāļĢāļąāļāđāļĨāļ°āļāļāļāļŠāļāļāļāļāļģāļāļ (Request and Response Handling): āđāļĄāļ·āđāļāđāļāļĨāđāļāđāļāļāđāļŠāđāļāļāļģāļāļ HTTP āļĄāļēāļĒāļąāļ Backend āļāđāļēāļ RESTful API, Backend āļāļ°āļāļģāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļģāļāļāļāļąāđāļāđāļĨāļ°āļŠāđāļāļāļēāļĢāļāļāļāļŠāļāļāļ (response) āļāļĨāļąāļāđāļāļĒāļąāļāđāļāļĨāđāļāđāļāļāđāđāļāļĢāļđāļāđāļāļ JSON āļŦāļĢāļ·āļ XML āđāļāļĒāļāļķāđāļāļāļĒāļđāđāļāļąāļāļāļēāļĢāļāļąāđāļāļāđāļēāļāļĩāđāļāļģāļŦāļāļāđāļ§āđ
- Business Logic: Backend āļāļ°āļĢāļ§āļĄāļāļĢāļĢāļāļ°āļāļļāļĢāļāļīāļāļāđāļēāļāđ āđāļāđāļ āļāļēāļĢāļāļģāļāļ§āļ āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāđāļāļ·āđāļāļāđāļāļāļąāļāļĢāļ°āļāļāļ āļēāļĒāļāļāļ āļŊāļĨāļŊ āđāļ§āđāđāļ RESTful API āđāļāļ·āđāļāđāļŦāđāđāļāđāđāļāļ§āđāļēāļāļēāļĢāļāļģāđāļāļīāļāļāļēāļĢāļāļąāļāļāļĢāļąāļāļĒāļēāļāļĢāđāļāđāļāđāļāļāļēāļĄāļāļāđāļāļāļāđāđāļĨāļ°āļāđāļāļāļģāļŦāļāļāļāļāļāđāļāļāļāļĨāļīāđāļāļāļąāļ
- āļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ (Security): RESTful API āđāļ Backend āļāļ°āļāđāļāļāļĄāļĩāļāļēāļĢāļāļąāļāļāļēāļĢāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ āđāļāđāļ āļāļēāļĢāļĒāļ·āļāļĒāļąāļāļāļąāļ§āļāļ (Authentication) āļāļēāļĢāļāļāļļāļāļēāļ (Authorization) āļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠāļāđāļāļĄāļđāļĨ (Data Encryption) āđāļĨāļ°āļāļēāļĢāļāđāļāļāļāļąāļāļāļēāļĢāđāļāļĄāļāļĩāļāđāļēāļāđ āđāļāđāļ SQL Injection, XSS, CSRF āđāļāđāļāļāđāļ
- āļāļēāļĢāļŠāđāļāļĨāļĢāļ°āļāļ (Scalability): Backend āļāļĩāđāđāļāđ RESTful API āļŠāļēāļĄāļēāļĢāļāļāļāļāđāļāļāđāļŦāđāļĢāļāļāļĢāļąāļāļāļēāļĢāļŠāđāļāļĨāđāļāļ§āļāļāļ (Horizontal Scaling) āđāļāđāļāđāļēāļĒ āđāļāļĒāļāļēāļĢāđāļāļīāđāļĄāļāļģāļāļ§āļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļĩāđāđāļŦāđāļāļĢāļīāļāļēāļĢ API āļĄāļēāļāļāļķāđāļāđāļāļ·āđāļāļĢāļāļāļĢāļąāļāļāļģāļāļ§āļāļāļģāļāļāļāļĩāđāđāļāļīāđāļĄāļāļķāđāļ
āļāļąāļ§āļāļĒāđāļēāļ RESTful Web API â
āļŠāļĄāļĄāļāļīāļ§āđāļēāļāļļāļāļĄāļĩāļĢāļ°āļāļāļāļąāļāļāļēāļĢāļŦāļāļąāļāļŠāļ·āļ (Book Management System) āđāļāļĒāļĄāļĩ API āļāļĩāđāđāļāđāļāļąāļāļāļēāļĢāļŦāļāļąāļāļŠāļ·āļāļāļąāļāļāļĩāđ:
- GET /books: āļĢāļąāļāļĢāļēāļĒāļāļēāļĢāļŦāļāļąāļāļŠāļ·āļāļāļąāđāļāļŦāļĄāļ
- GET /books/{id}: āļĢāļąāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŦāļāļąāļāļŠāļ·āļāđāļāļāļēāļ°āđāļāļĒ ID
- POST /books: āđāļāļīāđāļĄāļŦāļāļąāļāļŠāļ·āļāđāļŦāļĄāđ
- PUT /books/{id}: āļāļąāļāđāļāļāļāđāļāļĄāļđāļĨāļŦāļāļąāļāļŠāļ·āļāđāļāļāļēāļ°āđāļāļĒ ID
- DELETE /books/{id}: āļĨāļāļŦāļāļąāļāļŠāļ·āļāđāļāļāļēāļ°āđāļāļĒ ID
āļāļąāļ§āļāļĒāđāļēāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđ API: â
- āļāļēāļĢāļāļāļĢāļēāļĒāļāļēāļĢāļŦāļāļąāļāļŠāļ·āļāļāļąāđāļāļŦāļĄāļ:Â
GET /books
- āļāļēāļĢāļāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŦāļāļąāļāļŠāļ·āļ ID 1:Â
GET /books/1
- āļāļēāļĢāđāļāļīāđāļĄāļŦāļāļąāļāļŠāļ·āļāđāļŦāļĄāđ:Â
POST /books
 āļāļĢāđāļāļĄāļāđāļāļĄāļđāļĨāļŦāļāļąāļāļŠāļ·āļāđāļāļāļāļāļĩāđāļāļāļāļāļģāļāļ - āļāļēāļĢāļāļąāļāđāļāļāļŦāļāļąāļāļŠāļ·āļ ID 1:Â
PUT /books/1
 āļāļĢāđāļāļĄāļāđāļāļĄāļđāļĨāļāļĩāđāļāđāļāļāļāļēāļĢāļāļąāļāđāļāļāđāļāļāļāļāļĩāđāļāļāļāļāļģāļāļ - āļāļēāļĢāļĨāļāļŦāļāļąāļāļŠāļ·āļ ID 1:Â
DELETE /books/1