SpringBoot RestAPI (සිංහලෙන් ) Part-2

අද අපි බලන්නෙ කොහොමද controller එකක් use කරලා object එකක් return කරන්නේ කියලා.

හරි මුලින්ම topic කියලා java class එකක් සහ topic controller කියලා java classes දෙකක් start කරගන්න.

Topic&con.PNG

Topic කියන object එකේ attribute විදිහට මං දාලා තියෙන්නේ id ,name, description

Topic

දැන් අපි මේ Topic class එක ඇතුලේ private variables වලට getter and setter methods  සහ constructor දාගෙන ඉමු.

class

හරි අපි දැන් Topic Class එකේ වැඩේ ඉවරයි. ඊට පස්සෙ අපි බලමු කොහොමද මේ object එක controller එකකින් map කරගන්නෙ කියලා .

මේකෙදි මං කරලා තියෙන්නෙ /topics කියන request එකෙන් topic Array list කරන return කරන එක (Array List ගැන තාම ලොකු idea එකක් නැත්නම් මේක try කරල පොඩි idea එකක් ගන්න https://www.geeksforgeeks.org/arraylist-in-java/)

arraylist.PNG

හරි දැන් අපේ වැඩෙ ඉවරයි ,දැන් අපි project එක run කරලා බලමු …

Capture44

දැන් අපි  /topics  request කරහම topic Array list එක Browser එකේ display  කරනවා……

 

SpringBoot RestAPI (සිංහලෙන් ) part 1

මේ blog එකෙන් මන් කතා කරන්න හිතන් ඉන්නෙ මුල ඉඳන් සරලව පියවරෙන් පියවර කොහොමද SpringBoot වලින් RestFull Api එකක් හදාගන්නෙ කියන එක ..

එහෙනම් වැඩේට බහිමු..

මුලින්ම අපි Development Environment එක Setup කරගෙන ඉමු..

1.Java Install කරලා නැත්නම් මුලින්ම Java දාගෙන ඉන්න ඕනි (Java 8 SDK) .

2.ඊට පස්සෙ අපි බලන්න ඕනි මොකක්ද අපි use කරන්න ඕනි IDE එක කියල.

මන් මේ blog series එකේ use කරන්නෙ Intellij Idea.

මේක විතරක් නෙවේ ඔයාලට Spring Tool Suite(STS), Eclipse උනත් use කරනන් පුලුවන්.

හරි එහෙනම් අපි බලමු කොහමද SpringBoot Project එකක් create කරන්නෙ කියල.

  • https://start.spring.io/  මේ web site එකට ගිහිල්ලා අපිට පුලුවන් අපිට ඕන කරන dependency  දාලා project එක download කරගන්න. ඊලගට පහල photo එකෙ තියෙන විදිහට වැඩේ ඉස්සරහට කරගෙන යමු.SpringIntilizer.io
  • ඊලගට අපි බලමු කොහොමද අපි අපේ IDE එකෙන් මේ source එක import කරගන්නේ කියලා.
  • Import Project -> Find the location of downloaded project -> Create project from existing source -> then click “Finish”  ඔයාලට කෙලින්ම IDE එක open උනොත්  File -> New -> project from existing source -> find the location of downloaded project.  project එක open කරගත්තාම ඔයාලට project එකෙ file content එක පේන්නේ මේ විදිහට.
  • අපි දැන් බලමු කොහොමද project එක run කරන්නෙ කියල..files

Right click on the Application java file -> click “Run”

ඊට පස්සෙ අපිට terminal එකේ බලාගන්න පුලුවන් tomcat server එකේ 8080 කියන port එකේ අපෙ web app එක run වෙනව.

server.PNG

ඊට පස්සෙ http://localhost:8080/ කියල web browser එකේ දෙන්න, එතකොට අපිට බලාගන්න පුලුවන් මෙහෙම page එකක්.

errorpage.PNG

ඔයාලට මේක ආවෙ නැතුව හරි වෙන error එකක් ඇවිල්ල තියෙනවනම් හරි පහල comment section එකේ comment එකක් දාන්න.

  • How to add a Rest-Controller

හරි දැන් අපි බලමු මොකක්ද මේ Rest-Controller එකක් කියන්නෙ , කොහොමද Rest-Controller එකක් add කරගන්නෙ කියලා..

උදාහරනයක් විදිහට හිතන්නකෝ http://localhost/hello කියල දුන්න කියල එතකොට අපිට ඒ එන request එක handle කරගන්න තමා controller එකක් use කරන්නේ

හරි එහෙනම් අපි වැඩේට බහිමු…….

මුලින්ම Maincontroller කියලා java class  එකක් create කරගන්න. ඊට පස්සෙ අපි දෙන request එකට mapping method එකක් ලියමු.

rm1.PNG

මං මේකෙ ලියලා තියෙන්නෙ URL එකේ  /hello කියලා Request එකක් ආපු ගමන් page එකේ “Welcome to the SpringBoot..!!”  කියලා return  කරන්න කියලා.

Capture.PNG

හරි අපි දැන් Springboot වල පලවෙනි step 1 complete.

Springboot ගැන ඔයාලට තියන ප්‍රශ්න හරි blog එක කියවන් යද්දි ඔයාලට ගැටලු ඇති උන තැන් තියනව නම් හරි ඒවත් අනිවරෙන් comment කරගෙන යන්න..!!

 

මොකක්ද මේ Blockchain කියන්නේ ??

මේ දවස් වල වැඩිපුර කතා වෙන දෙයක් තමා Bitcoin කියල කියන්නෙ. මේකට වැඩිපුරම කට්ටිය නැඹුරු වෙන්න හේතුව තමා Bitcoin වල තියන security concept එක. අද අපි කතා කරන්න යන්නෙ අන්න ඒ security concept එක ගැන. ඒ තමා Blockchain

මුලින්ම bitcoin කියන concept එක ලෝකෙට ගෙනාවෙ Satoshi Nakamoto. ඒ වුනාට තාම කවුරුත් මේ කව්ද කියලා හොයාගෙන නෑ ..
bit coin වලට කිසිම owner කෙනෙක් නෑ. මේකට සම්බන්ධ වෙන ඕන කෙනෙක් (node එකක්) මේකෙ contoller කෙනෙක් වෙනවා. අනිත් දේ තමා මේකෙට කිස්ම අතරමැදි කරුවෙක් සම්බන්ධ වෙන් නෑ …

උදාරනයක් විදිහට හිතන්නකෝ bank එකක්. අපි කරන හැම transaction එකටම bank එක අතරමැදියෙකු විදිහට සම්බන්ධ වෙනව. ඒ නිසා document charges, stamp charges වගේ ගොඩක් වියදම් අපිට දැරීමට වෙනවා. මේ bit coin එකේ එහෙම කිසිම දෙයක් නෑ. bit coin මෙච්චර ඉක්මනට මිනිස්සු අතරට යන්නත් එක හේතුවක් තමා ඒක.
හරි දැන් ඔයාලා බලනවා ඇති අතරමැදියෙකුත් නැත්නම් control කරන්න කෙනෙකුත් නැත්නම් කොහොමද මේ bit coin trust කරන්නෙ කියලා ..ඒ වගේම කවුරු හරි කෙනෙක් තව කෙනෙක්ට bit coin යැව්වම තමන්ගෙ bit coins අඩු වුනාද වැඩි උනාද කියලා බලගන්නෙ කොහොමද කියලා ඔයාට ප්‍රශ්නයක් ඇති.. ඒ වගේම කවුද මේක control කරන්නෙ කියන ප්‍රශ්නෙ ඇති..

මෙන්න මෙතනදි තමා ledger කියන concept එක එන්නෙ.

ledger

ඒක වෙන්නෙ මෙහෙමයි. මේක control කරන්න centralized system එකක් නැති නිසා හැම node එකකටම මේ ledger එකක් තියනව. “A” කියන කෙනා “B” කියන කෙනාට bit coins යැව්වොත් A කියන කෙනගෙ ledger එකෙන් coins අඩු වෙලා B කියන කෙනාගෙ coins වැඩි වෙනවා. හරි එහෙනම් ඒ ප්‍රශ්නෙ ඉවරයි. දැන් ඔයාලට හිතෙනවා ඇති තම තමන්ට මෙහෙම ledger තියනව නම් ඒක ඇත්තේ තමන්ගෙ computer එකේ text file එකක් හරි නැත්තම් database එකක් විදිහට හරිනෙ, ඉතින් ඔයාලට පුලුවනි ඒක වෙනස් කරගන්න කියල, හැබැයි මේක කාටවත් වෙනස් කරන්න බැරි නම් හරි වෙනස් කරගත්තොත් ඒක දැනගන්න පුලුවන් නම් හරි ඒ ප්‍රශ්නෙ විසඳගන්න පුලුවන් නේද???

අන්න එතනදි තමයි Blockchain concept එක use කරන්නේ…
හරි දැන් බලමු ඒක කොහොමද වැඩකරන්නෙ කියලා..

Bit coin වලදි අපි කරන්නෙ transactions. මේ transactions එකේ details ඔක්කොම එක block එකකට store වෙනවා. ඒ වගේම ඒ blocks එක එකකට unique key එකක් generate වෙනව. ඒකට අපි කියන්නෙ hashing කියලා. මේකට අපි යොදාගන්නෙ MD5,SHA520 වගේ special algorithm එකක් use කරන්න පුලුවන්.

Capture1.PNG

මේ වගේම අපි දෙන හැම input එකකටම “Hash“ එකක් generate වෙනවා.

dan hithannako kauru hari kenek thmange laga tyn ledger ekk wens kara kyl ethkota anith kenege block eke tyn prevois hash kyn eka wens krpu block eke hash ekt smn wen na ethkota system eken ek detect krgnnw

මේ වගේම concept එකක් තමයි linked list වලත් use කරන්නේ..

Bit coin වලදි අපි transaction විතරක් blockchain එකක store කරාට අපිට පුලුවන් අපේ personal details පවා මේකේ store කරලා තියන්න. දැනටමත් බැංකු සේවාවල මේ technology එක use කරන්න පටන් අරන් තියෙනවා.. ඒ විතරක් නෙවේ මේ field එකෙන් ඉස්සරහට ගොඩක් ලොකු job market එකක් හැදේවි…

අපි ඊලග blog එකෙන් කතා කරන්නේ simple block chain එකක් හදාගන්න හැටි

මේ පොස්ට් එක කියවලා ඔයාලත් තව ගැඹුරට blockchain ගැන හොයන්න. අලුත් දේවල් වගේම මට මෙතනදි කියන්න බැරිවුන basic points තියෙනව නම් පහල comment button එකේ අනිවර්යෙන් comment එකක් දාගෙන යන්න..