ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-26, Sunday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

JSON අරේ එකම වේලාවේ සජීවීව යවනවා: .NET Minimal API නව හැකියාව හෙළිවී

JSON අරේ එකම වේලාවේ සජීවීව යවනවා: .NET Minimal API නව හැකියාව හෙළිවී

කාලීන කේත සමාලෝචනයකදී, දිගු කාලීන ආයාත රැකවරණයක් සඳහා progress endpoint එකක් නිර්මාණය කරමින්, JSON ප්‍රතිචාරය බෆර් කරයි කියන සම්ප්‍රදාය පුරාණ මතයක් පරීක්ෂා කිරීමට කණ්ඩායමක් උත්සාහ කළා.

ඩිවෙලොපර්ලා IAsyncEnumerable<Step> එකක් ආපසු දෙන Minimal API එකක් සකස් කරලා, එක් එක් පියවර 400 ms පසු යවන ආකාරයට පරීක්ෂණයක් කළා. පාරිභෝගික පැත්තේදී HttpCompletionOption.ResponseHeadersRead භාවිතා කර, සරලව stream.ReadAsync කරමින් ලැබෙන බයිට් ගණන සහ කාලය ලොග් කරලා බැලුවා.

ප්‍රතිඵලයෙන් පෙනුනේ, සම්පූර්ණ අරේ එක පූර්ණයෙන් බෆර් නොවී, පළමු අයිතමය එන මොහොතේම "[" සහ පසුපස අයිතමයන් 40 bytes පමණ씩 එක-එක කරගෙන එන බවයි. මුළු අරේ එක අවසන් වීමටත් "]" එක පමණක් පසුබැසී තිබුණා. ඒ කියන්නේ, System.Text.Json හි async මාර්ගය ප්‍රතිචාරය flush කරයි, නිර්මාණකරු await කරද්දී.

ඇත්තටම MVC + Newtonsoft.Json මාර්ගය IAsyncEnumerable එක මුළුමනින්ම බෆර් කරනවා, නමුත් Minimal API + System.Text.Json එකේ මේ ගැටලුව නැත. තවත් වැදගත් කරුණක් නම්, ප්‍රතිචාර ශීර්ෂක (headers) පළමු අයිතමය යවන තුරු එනවා නොහැක; එබැවින් TTFB (Time To First Byte) එක පළමු yield එකට සමාන වේ.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ වැඩිහිටි දැනුම්පත්, විශ්වවිද්‍යාල සිසුන්, ස්මාල් බිස්නස් ආදියට මේ තාක්ෂණය විශාල වාසි ලබා දෙයි:

  • රියල්‑ටයිම් ඩැෂ්බෝඩ් – SignalR වැනි අමතර ප්‍රොටෝකෝලයක් නැතිව, API එකෙන් සජීවී JSON අරේ ලබා ගත හැක.
  • ලේසි ලේඛන පරිභෝජනය – .NET සේවාවක් JsonSerializer.DeserializeAsyncEnumerable භාවිතා කර, දත්ත ලැබෙන පමණක් සැකසිය හැක.
  • සම්පත් සුරක්ෂිත කිරීම – බෆර් නොකිරීම නිසා මතකය හා නෙට්වර්ක් පටලැවිල්ල අඩු වේ, එමනිසා ක්ලවුඩ් හෝ ඔන්‑ප්‍රෙම් සේවා වියදම් අඩු වේ.

බ්‍රවුසරය තුළ fetch(...).json() මඟින් සම්පූර්ණ බොඩිය අවසන් වන තුරු ප්‍රතිචාර ලබා නොගන්න බැවින්, වෙබ් UI එකේ රියල්‑ටයිම් ප්‍රදර්ශනය සඳහා Server‑Sent Events (SSE) හෝ WebSocket වැනි තාක්ෂණයක් තවමත් අවශ්‍ය වේ.

අවසන් වශයෙන්, .NET Minimal API සමඟ System.Text.Json භාවිතා කරන්නේ නම්, JSON අරේ සජීවීව ප්‍රවාහය වන අතර, සේවාදායකය බෆර් කිරීමේ ගැටලුවකට මුහුණ නොදෙයි. මෙයින් අපට වේගවත්, කාර්යක්ෂම API නිර්මාණය කිරීමේ නව මාර්ගයක් ලැබේ.

💡 ඔබත් දැන් ඔබේ API එක සජීවීව පාවිච්චි කර බලන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#JSON #MinimalAPI #.NET #Streaming #Dev