Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (02/13) Programare Web – Protocolul HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5Sabin Buraga
O viziune de ansamblu asupra suitei de tehnologii HTML5, plus exemple referitoare la generarea de conținut multimedia via SVG sau via elementul canvas. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.jsSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga
O prezentare pentru elevii de liceu – participanți la SummerIS <www.summeris.ro> – referitoare la cele mai importante aspecte privind cariera de dezvoltator de aplicații Web.
A presentation for high-school students regarding the most important aspects about a professional carrier focused on Web application development.
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientSabin Buraga
O privire generală privind performanța aplicațiilor Web la nivel de client (tehnici, strategii, exemple reale și altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (11/13) Servicii Web. Paradigma RESTSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...Sabin Buraga
Detalii privind căutarea resurselor Web. De la motoare de căutare și SEO la date structurate (microformate + scheme de date HTML5). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Aspecte esențiale privitoare la limbajul de marcare HTML5 (o prezentare pentru un hackathon Web destinat elevilor de liceu).
Essential aspects about the HTML5 markup language (a Web hackathon presentation for high-school students).
Detalii despre cele mai importante API-uri JavaScript standardizate specifice HTML5 pe care le oferă navigatoarele Web actuale, inclusiv diverse exemple. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
Despre programarea în limbajul JavaScript direct în browser-ul Web (DOM, Ajax, Comet, mash-up, CORS și multe altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Diverse aspecte de interes privind ingineria dezvoltării aplicațiilor JavaScript, inclusiv utilizarea instrumentelor software specifice. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
A lecture – prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016): www.informaticalacastel.ro – regarding the most important aspects on Web development and current perspectives (2016 updated edition).
For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/
O prelegere reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția actualizată pentru 2016).
Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5Sabin Buraga
O viziune de ansamblu asupra suitei de tehnologii HTML5, plus exemple referitoare la generarea de conținut multimedia via SVG sau via elementul canvas. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (01/13) Spațiul World Wide Web – aspecte arhitecturaleSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.jsSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
A presentation regarding search engines, Web robots and related technologies prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016).
O prezentare referitoare la motoare de căutare, roboți Web și alte tehnologii înrudite pregătită pentru Școala de vară "Informatica la Castel" (Macea, Arad, România, 2016): http://informaticalacastel.ro/
Sabin Buraga – Dezvoltator Web (...în 2017)Sabin Buraga
O prezentare pentru elevii de liceu – participanți la SummerIS <www.summeris.ro> – referitoare la cele mai importante aspecte privind cariera de dezvoltator de aplicații Web.
A presentation for high-school students regarding the most important aspects about a professional carrier focused on Web application development.
CLIW 2015-2016 (12/13) Performanța aplicaţiilor Web la nivel de clientSabin Buraga
O privire generală privind performanța aplicațiilor Web la nivel de client (tehnici, strategii, exemple reale și altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (11/13) Servicii Web. Paradigma RESTSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (6/13) (Re)găsirea resurselor Web. De la motoare de căutare și...Sabin Buraga
Detalii privind căutarea resurselor Web. De la motoare de căutare și SEO la date structurate (microformate + scheme de date HTML5). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Aspecte esențiale privitoare la limbajul de marcare HTML5 (o prezentare pentru un hackathon Web destinat elevilor de liceu).
Essential aspects about the HTML5 markup language (a Web hackathon presentation for high-school students).
Detalii despre cele mai importante API-uri JavaScript standardizate specifice HTML5 pe care le oferă navigatoarele Web actuale, inclusiv diverse exemple. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
Despre programarea în limbajul JavaScript direct în browser-ul Web (DOM, Ajax, Comet, mash-up, CORS și multe altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Diverse aspecte de interes privind ingineria dezvoltării aplicațiilor JavaScript, inclusiv utilizarea instrumentelor software specifice. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
WADe 2017-2018 (1/12) Web Application Development: Concepts & VisionSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
A lecture – prepared to be delivered during "Computer Science at the Castle" Summer School (Macea, Arad, Romania, 2016): www.informaticalacastel.ro – regarding the most important aspects on Web development and current perspectives (2016 updated edition).
For other resources of interest, visit http://profs.info.uaic.ro/~busaco/teach/
O prelegere reunind cele mai importante aspecte privind dezvoltarea Web și perspectivele actuale (ediția actualizată pentru 2016).
Pentru alte resurse de interes, a se consulta http://profs.info.uaic.ro/~busaco/teach/
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
CLIW 2017-2018 (3/12) (Re)găsirea resurselor Web. De la motoare de căutare şi...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (12/13) Interacțiune Web cu Ajax. Aplicații Web hibride (mash-up-uri)Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Dezvoltarea aplicatiilor orientate spre servicii Web. De la REST la mash-up-u...Sabin Buraga
A presentation (available in Romanian language) about RESTful Web service development, including several considerations regarding mash-ups & APIs.
For other details, visit http://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
WADe 2017-2018 (2/12) Service-based Web Application Development. RESTSabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2016 (10/13) Servicii Web. De la arhitecturi orientate spre servicii (SOA...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
A presentation explaining to (high-school) students what Web development is, including career information.
O prezentare pentru elevi și studenți oferind informații despre ceea ce înseamnă dezvoltarea de apllicații Web.
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
O prezentare referitoare la dezvoltarea aplicațiilor Web dedicată elevilor de liceu. Prelegerea a fost susținută în cadrul Școlii de vară SummerIS organizată la Universitatea Alexandru Ioan Cuza din Iași, Facultatea de Informatică (iulie 2019).
A presentation regarding Web application development delivered to high-school students, a part of the SummerIS summer school organized at the Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania (July 2019).
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...Sabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (4/10) Information Architecture. From Design Patterns to Visual DesignSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (5/10) Information Architecture. From Design Patterns to FlowSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) InteractionsSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
3. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest
serviciile Web pot fi dezvoltate via SOAP și/sau REST
Stefan Tilkov, REST: Not an Intro (2013)
speakerdeck.com/stilkov/rest-not-an-intro-1
service interface
service logic
business rules
data access
data
resources
hypermedia
represen-
tations:
JSON, XML,…
HTTP
operations
SOAP
XML
messages
WS-*
5. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: representational state transfer
Stil arhitectural de dezvoltare a aplicațiilor Web
axat asupra reprezentării datelor
Roy Fielding
teză de doctorat, 2000 (University of California, Irvine)
www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
10. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest
Rezultatul unei procesări conduce la obținerea
unei reprezentări a unei resurse
reprezentare pe baza unui format de date
formatul reprezentării e desemnat de tipuri MIME
text/html, text/xml, text/csv, application/json, image/png
detalii în N.Freed et al., Media Types, 23 aprilie 2020
www.iana.org/assignments/media-types/media-types.xhtml
22. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
restMetoda HTTP Idempotent Safe
GET 🗸 🗸
POST ✗ ✗
PUT 🗸 ✗
PATCH ✗ ✗
OPTIONS 🗸 🗸
HEAD 🗸 🗸
DELETE 🗸 ✗
de studiat și articolul Tamas Piros,
RESTful API Design – POST vs PUT vs PATCH, 2018
blog.fullstacktraining.com/restful-api-design-post-vs-put-vs-patch/
avansat
27. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
HATEOAS (Hypermedia As The Engine Of Application State)
B. Doerrfeld, Designing a True REST State Machine (2018)
nordicapis.com/designing-a-true-rest-state-machine/
resursa1
reprezentare1
(HTML)
http://blog.info/
resursa2
reprezentare2
(HTML)
http://blog.info/mesaj
resursa3
reprezentare3
(HTML)
http://blog.info/mesaj/editor
resursa4
reprezentare4
(RSS)
http://blog.info/stiri.xml
GET
GET
POST
47. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: exemplu
Serviciu pentru managementul adreselor Web favorite
(bookmark-uri), cu posibilitatea atașării de
termeni de conținut (tag-uri) și comentarii
funcționalitate de bază: listarea tuturor bookmark-urilor
(eventual, filtrate după diverse criterii)
managementul bookmark-urilor:
adăugare, editare, ștergere, partajare
48. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Resursa URL Metoda Reprezentare
Bookmark /bookmarks/{hash} GET application/bookmark+xml
Bookmark /bookmarks/{hash} PUT application/bookmark+xml
Bookmark /bookmarks/{hash} DELETE
Lista de
adrese
/bookmarks GET application/atom+xml
Lista de
utilizatori
/users GET application/atom+xml
Lista de
tag-uri
/tags GET application/atom+xml
Pagina
principală
/ GET application/xml
49. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
GET /bookmarks
200 OK
Content-type: application/atom+xml
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Bookmarks</title>
<entry>
<title>O resursă interesantă</title>
<link
href="/bookmarks/a211528f…bdcf"/>
<summary>
http://undeva.info/o-resursa-interesanta
</summary>
</entry>
<!-- eventual, alte elemente <entry>… -->
</feed>
răspuns XML (Atom)
oferit de serviciu
obținerea
bookmark-urilor
digest – hash
(SHA-1, SHA-3,…)
50. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
GET /bookmarks/a211528f…bdcf
200 OK
Content-type: application/bookmark+xml
<bookmark>
<title>O resursă interesantă</title>
<url>http://undeva.info/o-resursa-interesanta</url>
<user href="/users/tux">tux</user>
<tags>
<tag href="/tags/interesting">interesting</tag>
<tag href="/tags/penguin">penguin</tag>
</tags>
</bookmark>
preluarea unui bookmark:
răspunsul XML oferit de serviciul Web
53. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest
Resursele se denumesc folosind URI-uri (URL-uri)
Reprezentările sunt interconectate prin URL-uri
Pot exista intermediari (e.g., proxy, cache, gateway)
între clienți și resurseperformanță, securitate,...
Transferul de date poate fi și asincron – Ajax et al.
într-un curs viitor
54. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
O resursă poate avea asociate reprezentări
ce pot fi accesate/alterate via operații HTTP
CRUD – Create, Retrieve, Update, Delete
Operation SQL HTTP
Create INSERT PUT POST
Read (Retrieve) SELECT GET
Update (Modify) UPDATE PUT POST PATCH
Delete (Destroy) DELETE DELETE
62. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: metodologie
„Numirea” prin URI a fiecărei resurse
cazuri concrete:
accesarea știrilor referitoare la un subiect de interes
https://www.reddit.com/r/programming/
acces la prezentările SlideShare ale utilizatorului busaco
https://www.slideshare.net/busaco/presentations
obținerea listei celor ce urmăresc un utilizator autentificat
https://twitter.com/followers
avansat
67. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: metodologie
Proiectarea reprezentării(lor) acceptate
ce pot fi trimise de aplicația client
și reprezentării(lor) întoarse spre client
de considerat formatele standard, comune:
CSV – Comma Separated Values
JSON(-LD) – JavaScript Object Notation (-Linked Data)
XML – Extensible Markup Language
YAML – YAML Ain’t Markup Language
avansat
68. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: metodologie
Integrarea resurselor
via legături hipermedia + formulare
exemplificare (GitHub):
“All resources may have one or more *_url properties
linking to other resources. These are meant to provide
explicit URLs so that proper API clients don’t need
to construct URLs on their own.”
developer.github.com/v3/#hypermedia
avansat
76. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
URL-urile desemnând resurse (concepte)
de interes trebuie să fie simple și intuitive
colecții de resurse – uzual, la plural
/students
identificatori unici pentru membrii unei colecții
/students/tuxy (concret) vs. /students/69 (abstract)
avansat
77. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
URL-urile desemnând resurse (concepte)
de interes trebuie să fie simple și intuitive
structura ierarhică a URL-urilor reprezintă ierarhia
resurselor din cadrul domeniului modelat al aplicației
exemplu (Discogs):
/users/{name}/collection/folders/{f_id}/releases/{r_id}/instances/{i_id}
avansat
78. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
Folosirea verbelor (metodelor) HTTP pentru efectuarea
de operații asupra unor (colecții de) resurse
resursa
(URI)
POST
(creează)
GET
(accesează)
PUT
(actualizează)
DELETE
(șterge)
/students
creează
un student nou
listează studenții
existenți
actualizează
un set de studenți
șterge toți
studenții
/students/69
(un URL deja
existent)
eroare 😞
oferă date
despre student
dacă există,
actualizează,
altfel eroare
șterge
studentul
respectiv
avansat
79. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
Raportarea erorilor
folosirea codurilor de stare HTTP – httpstatuses.com
exemple tipice:
200 OK, 204 No Content, 206 Partial Content
303 See Other, 304 Not Modified
400 Bad Request, 401 Unauthorized, 403 Forbidden,
404 Not Found, 405 Method Not Allowed
500 Internal Server Error, 503 Service Unavailable
avansat
81. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
Raportarea erorilor
mesajele oferite trebuie să includă informații utile
exemplu:
GitHub – cod de stare HTTP oferit: 404
{
"message": "Not Found",
"documentation_url": "https://developer.github.com/v3"
}
avansat
orice reprezentare oferită include minim un URL
82. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
“Never release an API without a version
and make the version mandatory.” (Mulloy, 2012)
considerații de interes în articolul J. Curry,
Introduction to API Versioning Best Practices (2017):
nordicapis.com/introduction-to-api-versioning-best-practices/
avansat
84. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
specificarea versiunii
în antetul cererii HTTP
Accept: application/vnd.heroku+json; version=3
Accept: application/vnd.discogs.v2.html+json
în unele cazuri, folosind un antet propriu: X-API-Version
avansat
86. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
specificarea versiunii
continuous versioning
acces via același URI, indiferent de versiunea curentă
practica preferată (“Cool URIs don’t change”)
nordicapis.com/continuous-versioning-strategy-for-internal-apis/
avansat
99. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 1
Invocarea unui serviciu Web de prescurtare
a URL-urilor – https://is.gd/
un nou URL prescurtat va fi creat folosind adresa
https://is.gd/create.php?format=xml&url=adresaWeb
alte formate:
web (HTML), json,
simple (text)
101. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
Cererea HTTP ce invocă serviciul Web:
GET /create.php?format=xml&url=profs.info.uaic.ro/~busaco HTTP/1.1
Host: is.gd
Răspunsul obținut, transmis de serverul Web:
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 14 Apr 2020 10:32:07 GMT+2
Content-Type: text/xml;charset=UTF-8
<?xml version="1.0" encoding="UTF-8" ?>
<output>
<shorturl>https://is.gd/K3oomj</shorturl>
</output>
reprezentare POX
(Plain Old XML)
102. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
$c = curl_init (); // inițializăm cURL
// stabilim URL-ul serviciului Web invocat
curl_setopt ($c, CURLOPT_URL,
'https://is.gd/create.php?format=xml&url=profs.info.uaic.ro/~busaco');
// rezultatul cererii va fi disponibil ca șir de caractere
curl_setopt ($c, CURLOPT_RETURNTRANSFER, TRUE);
// nu verificăm certificatul digital utilizat pentru transferul datelor cu HTTPS
curl_setopt ($c, CURLOPT_SSL_VERIFYPEER, FALSE);
// preluăm reprezentarea oferită de server (aici, un document XML)
$res = curl_exec ($c); // implicit se recurge la metoda GET
curl_close ($c); // închidem conexiunea cURL
$doc = new DOMDocument (); // procesăm rezultatul via DOM
$doc->loadXML ($res);
// preluăm conținutul elementului <shorturl>
$urls = $doc->getElementsByTagName ('shorturl');
foreach ($urls as $url) {
echo '<p>New short URL is ' . $url->nodeValue . '</p>';
}
apelarea serviciului Web
via libcurl (PHP)
104. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 2
Obținerea unei imagini cu feline
corespunzătoare unui cod de stare HTTP dat
ca și în cazul anterior, serviciul Web e disponibil liber,
fără autentificare,
dar nu respectă toate principiile REST – i.e. nu e RESTful
https://http.cat/
105. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
define ('URL', 'https://http.cat/301');
$c = curl_init (URL); // inițializăm libcurl, indicând URL-ul serviciului
$opt = [ // tabloul opțiunilor de realizare a cererii HTTP
// datele vor fi disponibile ca șir de caractere
CURLOPT_RETURNTRANSFER => TRUE,
// nu verificăm certificatul digital
CURLOPT_SSL_VERIFYPEER => FALSE,
// timp de așteptare (în secunde) a stabilirii conexiunii
CURLOPT_CONNECTTIMEOUT => 10,
// timp de așteptare (în secunde) a răspunsului
CURLOPT_TIMEOUT => 10,
// codurile 4XX vor conduce la eroare
CURLOPT_FAILONERROR => TRUE,
// nu se acceptă redirecționări
CURLOPT_FOLLOWLOCATION => FALSE ];
curl_setopt_array ($c, $opt);
$res = curl_exec ($c);
vezi exemplul
din arhivă
106. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// codul de stare HTTP întors de serverul serviciului Web
$codHTTP = curl_getinfo ($c, CURLINFO_RESPONSE_CODE);
// tipul conținutului oferit de serviciu
$tip = curl_getinfo ($c, CURLINFO_CONTENT_TYPE);
// am primit cu succes o imagine JPEG?
if ($codHTTP == 200 && $tip == 'image/jpeg') {
header ('Content-Type: ' . $tip); // trimitem tipul MIME corespunzator
echo $res; // afișăm reprezentarea resursei obținute (aici, imaginea JPEG)
} else {
// trimitem codul de stare întors de serviciu
http_response_code ($codHTTP);
header ('Content-Type: text/plain');
echo 'Status code: ' . $codHTTP;
}
curl_close ($c);
vezi exemplul
din arhivă
109. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 3
Accesarea datelor publice vizând universul fictiv
„Războiul stelelor” (Star Wars)
colecții de resurse:
Planets, Spaceships, Vehicles, People, Films, Species
fiecare categorie de resurse are proprietăți specifice
e.g., orice instanță de Films include title, director, characters,…
111. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 4
Preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Art
metmuseum.github.io
disponibile liber sub licența Creative Commons Zero
Objects – colecții de resurse
Object – include (meta-)date de interes
Departments – lista departamentelor muzeului
112. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 4
Preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Art
metmuseum.github.io
API-ul REST oferit poate fi accesat fără autentificare
folosind domeniul collectionapi.metmuseum.org
rezultatele interogărilor sunt disponibile în format JSON
parte componentă a inițiativei Google Arts & Culture
artsandculture.google.com
113. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 4
Preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Art
pasul #1:
căutarea – cerere GET – unor resurse de interes
collectionapi.metmuseum.org/public/collection/v1/search?q=Romania
114. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 4
Preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Art
pasul #1:
căutarea – cerere GET – unor resurse de interes
se obține o colecție JSON de identificatori – objectIDs
{ "total": 50, "objectIDs": [ 460405, 29327,…, 159148 ] }
115. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 4
Preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Art
pasul #2:
accesul – cu GET – la datele vizând o resursă specifică
collectionapi.metmuseum.org/public/collection/v1/objects/460405
objectID
116. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: implementare – exemplul 4
Preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Art
pasul #2:
accesul – cu GET – la datele vizând o resursă specifică
rezultatul reprezintă un obiect JSON încapsulând diverse
(meta-)date furnizate de proprietăți: imagini ale
artefactului (primaryImage, additionalImages), proveniența
(country, state, region, city), clasificarea (classification),…
121. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: dezvoltare – exemplificări
ASP.NET MVC + Web API (C# et al.)
www.asp.net/web-api
Express, LoopBack, Restify, Sails, Superagent (Node.js)
www.npmjs.com/search?q=REST&ranking=popularity
JAX-RS (Java API for RESTful Web Services)
github.com/jax-rs
Restlet (Java)
restlet.com/open-source/
avansat
122. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: dezvoltare – exemplificări
Cornice, Django, Eve, Pecan (Python)
Grape, RESTRack, Ruby on Rails (Ruby)
www.ruby-toolbox.com/categories/API_Builders
RestKit (framework Objective-C pentru macOS + iOS):
github.com/RestKit/RestKit
a se consulta și github.com/marmelab/awesome-rest
avansat
123. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
rest: dezvoltare
Servicii publice ce pot fi consumate via REST – exemple:
Amazon, Coronavirus APIs, eBay, Facebook, FitBit, GitLab,
Google, ISBNdb, LinkedIn, Microsoft, MusicBrainz,
Open Banking Tracker, OpenStreetMap, PayPal, PostNL,
Quora, Tumblr, Vimeo, Wikidata,…
de explorat situl ProgrammableWeb
www.programmableweb.com/category/all/apis
+
lista API-urilor publice
github.com/abhishekbanthia/Public-APIs
130. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
soap vs. rest
SOAP REST
Acțiuni arbitrare (verbe) Acțiuni fixe – HTTP: GET, POST,…
Structuri de date oricât de
complexe – inclusiv validare
Operează asupra reprezentărilor
de resurse – XML, JSON, HTML
Descriere complexă a serviciului
(pe baza WSDL)
Scalabil (mai ușor de extins)
Descriere via OpenAPI Spec.
Suport pentru XML messaging Bazat pe URI + hipermedia
Dezvoltare sofisticată: securitate,
intermediari, specificații WS-*,
interoperabilitate,…
Uzual, mai facil de programat
(+disponibilitatea API-urilor)
Specific mediului enterprise
(infrastructuri complexe)
Abordare pragmatică
aplicații sociale et al. (Web 2.0)
avansat
132. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
episodul viitor:
dezvoltarea de aplicații Web complexe:
specificarea API-urilor, micro-servicii,
autentificare, autorizare, acces la date via GraphQL
arhitectură bazată
pe servicii Web
arhitectură recurgând
la micro-servicii
frontend
(FE)
ser-
vice
ser-
vice
ser-
vice
DB
client
ser-
vice
DB
FE FE FE
client
DB
ser-
vice
ser-
vice
DB