ලෝකේ බහුලවම භාවිතා වන API styles

Hi, I’m Harsha Fernando. I love coding, learning new tech, and sharing knowledge in Sinhala. I write about programming, web development, and real-world projects.
API එකක් කියන්නේ මොකක්ද කියලා ඔයා දැන් දන්නවා, හැබැයි කලින් Article එකේ මම කිව්වා වගේ ලොකේ භාවිතා වන විවිධ API styles තියෙනවා ඉතින් අද අපි බලමු ඒ මොනවද, ඒවගේ වෙනස්කම් මොනවද කියලා.
ඉදිරියට යන්න කලින් පොඩි පැහැදිලි කිරීමක්:
මේ ලිපිය පුරාවටම අපි උදාහරණයක් විදිහට රෙස්ටුරන්ට් එකක් භාවිතා කරනවා.
මෙතැනදී හිතමු අපි
Client කියන්නේ පාරිභෝගිකයා
Server කියන්නේ කුස්සිය
API කියන්නේ වේටර්
මේ වේටර්, පාරිභෝගිකයා (Client) සහ කුස්සිය (Server) එක්ක සන්නිවේදනය කරන්න පාවිච්චි කරන "භාෂාවන්" හෝ "නීති රීති" (Protocols & Architectures) වෙනස් වෙන්න පුළුවන්.
ඉතින් එහෙනම් අපි බලමු ලොකේ බහුලවම භාවිතා වන API styles මොනවද කියලා.
1. REST API (The Standard Set Menu)
"The most popular choice for the web"
අපි කලින් කතා කරපු රෙස්ටුරන්ට් උදාහරණයට ගොඩක්ම ගැළපෙන්නේ REST. මේක තමයි අන්තර්ජාලයේ 90%ක් විතර websites භාවිතා කරන්නේ.
කොහොමද වැඩ කරන්නේ?: ඔයා මෙනූ එකේ තියෙන දෙයක් (Resource) ඉල්ලනවා. වේටර් ඒක ගෙනත් දෙනවා. transaction එක එතැනින් ඉවරයි. වේටර් ඔයාව මතක තියාගන්නේ නෑ (Stateless).
Format: JSON (ගොඩක් වෙලාවට).
Analogy: ඔයා "Combo 1" ඉල්ලනවා. Server එක ඔයාට Burger + Fries + Coke ඔක්කොම එක පෙට්ටියක දාලා එවනවා. ඔයාට Fries එපා වුණත් ඒක එනවා.
2. SOAP (The Formal Bureaucrat)
"Old school, Strict, but very Secure"
SOAP කියන්නේ ටිකක් පරණ, හැබැයි හරිම නීතිගරුක ක්රමයක්. මේක රෙස්ටුරන්ට් එකක වේටර් කෙනෙක්ට වඩා, රජයේ කාර්යාලයක ලියුම් ගනුදෙනුවක් වගේ.
කොහොමද වැඩ කරන්නේ?: ඔයා ඉල්ලීමක් කරන්න විශේෂ ලියුම් කවරයක (Envelope), නියමිත ආකෘතියට (XML format) ලියුම ලියන්න ඕනේ. පොඩි හරි වැරැද්දක් තිබුණොත් ලියුම reject වෙනවා.
Format: XML (Exclusively).
Best for: බැංකු කටයුතු (Banking) සහ Enterprise Apps. මොකද මේකේ Security standards හරිම ඉහළයි.
Analogy: ඔයාට කෑමක් ඕන නම්, ඒකට අදාළ "ඉල්ලුම් පත්රය" පුරවලා, සීල් තියලා කුස්සියට යවන්න ඕන.
3. GraphQL (The Smart Buffet)
"Ask for exactly what you want"
REST වල තියෙන ලොකුම ප්රශ්නයක් තමයි Over-fetching (අපිට ඕන නැති දේවලුත් එනවා) සහ Under-fetching (ඕන ටික ගන්න දෙපාරක් ඉල්ලන්න වෙනවා). Facebook එකෙන් තමයි මේකට විසඳුමක් විදිහට GraphQL හැදුවේ.
කොහොමද වැඩ කරන්නේ?: ඔයාට පුළුවන් ඔයාට ඕන දේ විතරක් හරියටම තෝරලා ඉල්ලන්න.
Format: JSON.
Analogy: මේක "Buffet" එකක් වගේ. ඔයාට බත් එකයි, චිකන් කෑල්ලයි විතරක් ඕන නම්, ඒ ටික විතරක් බෙදාගන්න පුළුවන්. සලාද කොළ එපා නම්, ඒවා බෙදන්නේ නෑ.
Advantage: Mobile Data ඉතිරි වෙනවා, ඇප් එකත් වේගවත් වෙනවා.
4. gRPC (The High-Speed Talker)
"Super fast communication for internal systems"
Google සමාගම හඳුන්වා දුන් (gRPC = Google Remote Procedure Call) මේ ක්රමය හරිම වේගවත්. හැබැයි මේක Browser එකයි Server එකයි අතර කතා කරන්න නෙවෙයි, Server එක ඇතුළේ තියෙන පොඩි පොඩි Services (Microservices) අතර කතා කරන්න තමයි ගොඩක් පාවිච්චි කරන්නේ.
කොහොමද වැඩ කරන්නේ?: මේක පාවිච්චි කරන්නේ JSON (text) නෙවෙයි. මේක පාවිච්චි කරන්නේ Protocol Buffers (Protobuf) කියන Binary format එකක්. ඒක මනුස්සයෙක්ට කියවන්න බෑ, හැබැයි මැෂින් වලට කියවන්න මාර ස්පීඩ්.
Format: Binary (Protobuf).
Analogy: මේක හරියට කුස්සියේ ප්රධාන කෝකියා (Head Chef) සහ සහායකයා (Sous Chef) අතර තියෙන රහස් සංඥා භාෂාවක් වගේ. පාරිභෝගිකයාට (User) ඒක තේරෙන්නෙ නෑ, හැබැයි කුස්සිය ඇතුළේ වැඩ පට්ට ස්පීඩ් එකට කෙරෙනවා.
5. WebSockets (The Open Phone Line)
"Real-time, Two-way communication"
REST වලදී වේටර් කෑම ගෙනාවට පස්සේ යන්න යනවා. ආයේ ඕන නම් ආයේ කතා කරන්න ඕන. හැබැයි සමහර වෙලාවට අපිට දිගටම සම්බන්ධ වෙලා ඉන්න ඕන (Live Chat, Cricket Scores, Crypto prices). අන්න එතැනදී WebSockets ඕන වෙනවා.
කොහොමද වැඩ කරන්නේ?: මේකේදී Connection එක close කරන්නේ නෑ. Bi-directional (දෙපැත්තටම) දත්ත යවන්න පුළුවන් ඕන වෙලාවක.
Format: Text or Binary.
Analogy: මේක හරියට ඔයා කුස්සියට කෝල් එකක් අරන් Phone එක කනේ තියාගෙනම ඉන්නවා වගේ. කුස්සියේ කෑමක් හැදුණු ගමන් කෝකියාට පුළුවන් "ආ මචං, බඩු රෙඩී" කියලා එකපාරටම කියන්න. ඔයාට ආයේ ආයේ අහන්න දෙයක් නෑ.
Summary Table (කෙටියෙන් මතක තියාගන්න)
| API Type | Best For... (ගැළපෙන්නේ) | Analogy (සරලව) |
| REST | සාමාන්ය වෙබ් ඇප් සහ සයිට් (General Web) | Combo Meal එකක් |
| SOAP | බැංකු සහ ආරක්ෂාව ඉහළ සිස්ටම් (Banking) | සීල් තැබූ රජයේ ලියුම් කවරයක් |
| GraphQL | සංකීර්ණ දත්ත අවශ්ය ඇප් (Complex Data) | බුෆේ එකක් (Self-service) |
| gRPC | Server අතර අභ්යන්තර සන්නිවේදනය (Microservices) | කෝකියන් අතර රහස් භාෂාව |
| WebSockets | Live Chat, Games, Trading Apps | Phone Call එකක් (Live line) |
👉 Developer Tip: මේ හැම එකක්ම හොඳයි. වැදගත් වෙන්නේ ඔයා හදන සිස්ටම් එකට ගැළපෙන හොඳම API Type එක තෝරාගන්න එකයි.
ඉතින් එහෙනම් තවත් දවසක අපි කතා කරමු මොනවද මේ protocols කියන්නේ කියලා.🤘🏻👋🏻





