Skip to main content

Command Palette

Search for a command to run...

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

Updated
4 min read
ලෝකේ බහුලවම භාවිතා වන API styles
H

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 TypeBest For... (ගැළපෙන්නේ)Analogy (සරලව)
RESTසාමාන්‍ය වෙබ් ඇප් සහ සයිට් (General Web)Combo Meal එකක්
SOAPබැංකු සහ ආරක්ෂාව ඉහළ සිස්ටම් (Banking)සීල් තැබූ රජයේ ලියුම් කවරයක්
GraphQLසංකීර්ණ දත්ත අවශ්‍ය ඇප් (Complex Data)බුෆේ එකක් (Self-service)
gRPCServer අතර අභ්‍යන්තර සන්නිවේදනය (Microservices)කෝකියන් අතර රහස් භාෂාව
WebSocketsLive Chat, Games, Trading AppsPhone Call එකක් (Live line)

👉 Developer Tip: මේ හැම එකක්ම හොඳයි. වැදගත් වෙන්නේ ඔයා හදන සිස්ටම් එකට ගැළපෙන හොඳම API Type එක තෝරාගන්න එකයි.

ඉතින් එහෙනම් තවත් දවසක අපි කතා කරමු මොනවද මේ protocols කියන්නේ කියලා.🤘🏻👋🏻

More from this blog

Garbage Collector (GC) යනු කුමක්ද? – Heap Memory පිරිසිදු කරන ක්‍රියාවලිය

කලින් ලිපියේදී Heap Memory එකේ දත්ත කළමනාකරණය කිරීම developer​ට හෝ ස්වයංක්‍රීය ක්‍රියාවලියකට පැවරෙන බව සාකච්ඡා කරා. මෙම ස්වයංක්‍රීය ක්‍රියාවලිය හඳුන්වන්නේ Garbage Collector (GC) ලෙස​යි. Garbage Collector යනු, Heap Memory තුළ භාවිතයෙන් ඉවත් වූ (unused...

Jan 24, 20263 min read
Garbage Collector (GC) යනු කුමක්ද? – Heap Memory පිරිසිදු කරන ක්‍රියාවලිය

Primitive Type සහ Reference Type කියන්නේ මොනවද?

Programming language වල Data Store කරන විදි දෙකක් තියෙනවා: Primitive Types Reference Types (Non-Primitive Types) මේ දෙක අතර මූලික වෙනස තියෙන්නේ Memory එකේ Data තියෙ​න විදිහ. Primitive Types කියන්නේ මොනවද? Primitive type එකක් කියන්නේ simple value...

Jan 24, 20263 min read
Primitive Type සහ Reference Type කියන්නේ මොනවද?

Stack vs Heap memory

පරිගණක ක්‍රමලේඛනයේදී (Computer Programming) memory කළමනාකරණය (Memory Management) ඉතා වැදගත් වේ. ඕනෑම මෘදුකාංගයක් ක්‍රියාත්මක වන විට, එයට අවශ්‍ය දත්ත ගබඩා කර තබා ගැනීමට RAM (Random Access Memory) භාවිතා කරයි. මෙම මතකය(Random Access Memory) ප්‍රධාන වශය...

Jan 24, 20263 min read
Stack vs Heap memory

What is a Protocol (ප්‍රොටෝකෝලයක්)?

සරලවම කිව්වොත්, Protocol එකක් කියන්නේ "නීති මාලාවක්" (Set of Rules). රෙස්ටුරන්ට් එකේ වේට​ර් සහ ඔයා අතර ගනුදෙනුව සාර්ථක වෙන්න නම්, දෙන්නම එකම භාෂාවක් සහ එකම ආචාර විධි (Etiquette) පිළිපදින්න ඕන. ඔයා චීන භාෂාවෙන් කතා කරලා, වේට​ර් සිංහලෙන් උත්තර දුන්නොත...

Jan 22, 20263 min read
What is a Protocol (ප්‍රොටෝකෝලයක්)?
K

KodeXEdu

6 posts

We simplify complex programming concepts in Sinhala for beginners.