|
Tiesa apie REST Pastaba: šis tekstas daugiausia orientuotas į programuotojus, tad daugelis sąvokų laikomos akivaizdžiomis ir smulkiai neaiškinamos. Tikriausiai kažkiek sujaukia mintis, kai kažkas netikėtai tampa populiariu dalyku. Matyt populiarumas ir buvo priežastis to, kas daroma neteisingai, su REST (Representional State Transfer). Kas tai ir kokie jo apribojimai? Kas tai yra? Pirmiausia gali pasirodyti, kad REST yra visai paprastas dalykas URL panaudojimas kviečiant nutolintas procedūras. Ir iš tikro tai sudaro 80% RESTo. Panaudodami RPC (remote procedure calls) galime sukurti kiek tik norime komandų tokiu pavidalu: Jas bet kurią programavimo kalbą galima išversti kaip: Metodus galima panaudoti įrašų įrašymui, koregavimui, šalinimui ir bet kokiems kitiems veiksmams atlikti. Gražinamas rezultatas gali būti HTML, XML, JSON ar bet kokiu kitu, tame tarpe ir savu, formatu. Metodus galima realizuoti Java, .Net, PHP ar bet kokia kita norima kalba. RPC dažnai vadinamas routing, tačiau iš tikro yra dar nuo CGI. Tačiau kai tik tuos metodus padarote viešais, prasideda betvarkė. Tad REST bando įvesti tam tikrą RPC naudojimo struktūrą (kitaip tariant taisykles). Pirma taisyklė: URL turi perteikti tik resursus, t.y. URL yra tarsi adresas į tam tikrą daiktą (t.y., duomenis). Tad kaip galime nurodyti komandas? Antra taisyklė: komandos nurodomos tik panaudojant 4-ias pagrindines HTTP komandas: GET, PUT, POST ir DELETE
(jau įvestas ir nauja QUERY komanda - žr. >>>>>).
Pagrindinis principas kad internetas yra labai platus, o jo taikymai turi atrodyti tarsi standartinės tranzakcijos. Aiškinama, kad HTTP infrastruktūra žino, kaip tvarkyti tuos elementus kešuojant, autorizuojant ir pan. Kam išradinėti ratą, jei jį jau turime? Pastaba: dažnai aptariant REST aiškinama, kad GET ir DELETE yra nieko nekeičiantys, t.y., juos panaudojus kelis kartus nėra pasikeitimų (išmestas resursas pakartotinai metamas lieka išmestu). Tačiau juk realioje aplinkoje GET nėra nieko nekeičiantis (ypač, kai kviečiami dinaminiai puslapiai , kuriuose yra skaitliukai, laiko nurodymai ir kiti kintantys dalykai). Filosofiškai PUT ir POST yra labai panašūs (nes POST irgi galima panaudoti resurso įrašymui). Jie skiriasi tik tuo, kad PUT nieko nekeičia, nes kelis kartus įrašius tą patį resursą, niekas nesikeičia. Tačiau REST tą skirtumą padidina, reikalaudamas, kad PUT visada būtų siejamas su URLu į kuriamą ar atnaujinamą resursą, tuo tarpu POST, jei jį gražina kaip rezultatą, turi nurodyti naują URL. Tad jei norite prisilaikyti REST, galite laikytis tokios nuostatos (atskiram įrašui ar visam įrašų rinkiniui), pvz. Užbaigianti REST komponentė paprastai apibūdinama kaip hipermedija kaip būsenos variklis. Skamba paslaptingai, tačiau tai tereiškia nuorodas į kitus žingsnius. Jei norite griežtai laikytis REST ir sprendimą turėti kliento pusėje, išeitimi gali būti Ajax JQuery Ajax palaiko visas Tačiau iš tikro pats Ajax yra būsenas turintis klientas ir jame REST nelabai tinkamas. Tačiau yra dar viena problema: metodus galite kviesti tik iš to paties serverio (domeno). Tačiau negalima kreiptis į kitus domenus (nei yra www puslapis). O tai iš tikro rimtai apriboja REST API naudojimą. Aišku, yra daug šio apribojimo apėjimų (HTML5 vidiniai pranešimai puslapyje, JSONP, CORS ir tokios bibliotekos, kaip XDM), tačiau tai jau nebus elegantiški griežti REST sprendimai. Tad tėra vienas praktinis būdas naudoti REST API iš kito domeno susikurti proxy, t.y., serveryje pasirašote tam tikrą kodą, kuris užklausas iš Ajax nukreipia į kitus domenus. Vėlgi ne elegantiška, nesaugu ir nelabai gražu. Tai ką daryti? Prisiminti, kad REST nėra vienintelis pasirinkimas. jQuery - jau perlipo 20 m. 2006 m. rugpjūčio 26 d. John Resigas BarCampNYC unkonferencijoje paskelbė apie jQuery 1.00, pirmą stabilią šios JavaScript bibliotekos versiją, kurią ankstesniais metais pradėjo kurti Ročesterio technologijų inst-te. Ją netruko pripažinti ir jos bendruomenė sparčiai augo. Ir nesunku suprasti kodėl.. Google savo Chrome pristatė tik po poros metų. O poreikis atsižvelgti į naršyklių skirtumus ir jų individualias ypatybes buvo JavaScript programuotojų košmaras. Ir jQuery sprendė tokias problemas kaip DOM manipuliavimas ir nesuderintas naršyklių veikimas problemos, su kuriomis jau nebesusiduriame dėl šiuolaikinės jų API standartizacijos. Tačiau jQuery išliko plačiausiai naudojama JavaScript biblioteka (2026 m. sausį išleista 4.0 versija), piką pasiekusi prieš dešimtmetį. Jos populiarumą išlaiko naudojimas seniai veikiančiose svetainėse. Tokiose, kaip Facebook, LinkedIn, Microsoft, Google ir kt. Be to, ji yra ir WordPress pagrindas. *) Džonas Rezigas (John Resig, g. 1984 m.) - amerikiečių programuotojas ir autorius, geriausiai žinomas jQuery: sukūrimu (2006). Yra Khano akademijos vyr. PĮ architektas (nuo 2011 m.)Pagrindinė jo tyrinėjimų sritis: duomenų analizė momentinio apsikeitimo tinkluose. Dalyvavo kuriant ir kelias kitas JavaScript bibliotekas (FUEL, Processing.js, Sizzle, ...). Savo programavimo žinias taiko ir skaitmeniniams humanitariniams mokslams, tame tarpe japonų meno istorijai. Parašė kelias knygas apie JavaScript, tarp jų ir Profesionalus programavimas JavaScript kalba (2006) bei GraphQL vadovas (2021, su L. Sands-Ramshaw).
Ankstesnės "Advanced HTML" skyrelio temos: | |