dezvoltarea aplicațiilorwebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale...
TRANSCRIPT
![Page 1: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/1.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Dezvoltarea aplicațiilor Web
⤄servicii Web în stil REST
Dr. Sabin Corneliu Buraga – profs.info.uaic.ro/~busaco/
![Page 2: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/2.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
„Prima calitate a stilului este claritatea.”
Aristotel
![Page 3: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/3.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Cum pot fi accesate și procesate resursele– date, informații, cunoștințe –
disponibile pe Web?
![Page 4: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/4.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
integrare (în timp-real) la nivel de Internet/Weba aplicațiilor, serviciilor și sistemelor
![Page 5: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/5.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
integrare (în timp-real) la nivel de Internet/Weba aplicațiilor, serviciilor și sistemelor
exemplificare: găsirea ofertelor de servicii,pe baza localizării geografice a utilizatorului,
în contextul dispozitivelor mobile
![Page 6: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/6.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
datele să poată fi descrise pentru a fi „înțelese”de calculatoare și pentru a fi interconectate facil
![Page 7: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/7.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
nevoi ale dezvoltatorilor Web
Soluții multi-platformă, slab-conectate
datele să poată fi descrise pentru a fi „înțelese”de calculatoare și pentru a fi interconectate facil
Web “puzzles”inter-conectarea mai multor servicii oferind date de
interes, conform preferințelor utilizatorului
![Page 8: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/8.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
nevoi ale dezvoltatorilor Web
Servicii atașabile (pluggable) & versatile
Software as a Service – SaaS
Application Service Provider – ASP
![Page 9: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/9.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soluție
Divizarea aplicațiilor în servicii – independente –care se pot compune,
menite a se conecta și orchestra în mod spontanîn cadrul proceselor de afaceri/tehnice
Web component-based software
![Page 10: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/10.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
oferă suport pentru paradigme de comunicare– bazată pe actualele tehnologii Web –
între aplicații eterogene
![Page 11: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/11.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
permit(e) localizarea transparentă a serviciilor
![Page 12: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/12.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
facilitează adăugarea, înlocuirea, eliminareaserviciilor în mod dinamic
![Page 13: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/13.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
ascund(e) dezvoltatorului detaliile de sistem
![Page 14: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/14.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soluție
“The Web is the computer”
disponibilitatea unei/unor arhitecturi care…
asigură calitatea dezvoltării și exploatăriiaplicațiilor distribuite și/sau paralele:
standardizare, securitate, disponibilitate, reutilizare, mentenanță etc.
![Page 15: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/15.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Ce sunt serviciile Web?
![Page 16: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/16.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
“A service is an abstract resource that represents a capability of performing tasks that form
a coherent functionality from the point of view of providers entities and requesters entities.”
www.w3.org/TR/ws-gloss/
![Page 17: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/17.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
“A Web service is a software system designed to support interoperable machine-to-machine
interaction over a network.”
www.w3.org/TR/ws-gloss/
![Page 18: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/18.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Software oferind o funcționalitate specifică
acces la resurse – Instagram, Pinterest, Slideshare, Vimeoagregare de știri – Feedly, Reddit
cartografiere – Google Maps, OpenStreetMap etc.mesagerie instantanee – Snapchat, Telegram, Twilio
procesări – Amazon Rekognition, IBM Watson, Microsoft Azure Cognitive Services, Google TensorFlow…
realizare de statistici Web – e.g., Google Analyticsrețele sociale – Facebook Open Graph, LinkedIn, Twitter
spelling checking – Bing Spell Check, xSpell,…stocare de date – Amazon S3, Dropbox, OneDrive etc.
…
![Page 19: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/19.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
utilizate – la distanță – de alte aplicații/servicii
![Page 20: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/20.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Accesate standardizat via Web
adresare de resurse cu URItransfer de date via HTTP
mesaje adoptând formate de date: CSV, JSON, XML,…
![Page 21: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/21.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Cum am implementa un serviciu?
![Page 22: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/22.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Implementare standard
recurgerea la servere + framework-uri de aplicații Web
ASP.NET, Django, Node.js, PHP (CodeIgnater, Laravel,…),
Play!, Ruby on Rails,…
![Page 23: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/23.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web
limbaj de marcare – e.g., HTMLstiluri de prezentare a conținutului – CSS
interactivitate via JavaScript (+biblioteci/framework-uri)
![Page 24: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/24.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web
cererile sunt capt(ur)ate via formulare+ legături hipermedia
![Page 25: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/25.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web
utilizatorii umani trebuie să interpreteze etichetele și câmpurile de dialog
![Page 26: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/26.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Tradițional, aplicația oferă o interfață-utilizator disponibilă pe Web
serviciul implementat oferă un răspuns(o reprezentare a unei resurse Web)
uzual, un document HTML al cărui conținute transferat la client conform unui protocol: HTTP(S)
![Page 27: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/27.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Cum obținem răspunsul pentru a fi (re)folositîn programele noastre?
procesarea datelor din codul HTMLWeb scraping
<div class="ct-cs"><input id="exchange_rate" value="4.4155770975" type="hidden">
<input id="fob.log_input_ct" value="" type="hidden">…<table>…</table></div>
![Page 28: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/28.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web
Cum obținem răspunsul pentru a fi (re)folositîn programele noastre?
orice modificare în marcajerescrierea programului de preluare a datelor din documentul HTML
???!
![Page 29: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/29.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web: caracterizare
Serviciile Web fac explicite specificațiile implicite
datele de intrare și răspunsul pot fi specificate (riguros)via diverse maniere de validare
![Page 30: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/30.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web: caracterizare
Utilizate la interacțiunea dintre aplicații
dinamice
lipsa unei cunoașteri a-priori a interacțiuniicu alte aplicații/servicii Web
![Page 31: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/31.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web: caracterizare
Puncte finale utilizate pentru procesarea datelor, în manieră publică – eventual, via API-uri deschise
![Page 32: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/32.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
servicii web: caracterizare
Dezvoltate pe baza platformelor, arhitecturilor, tehnologiilor și limbajelor curente
![Page 33: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/33.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Există un model arhitectural de dezvoltarea serviciilor la nivel de Web?
![Page 34: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/34.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Arhitectura orientată spre servicii
SOA – Service Oriented Architecture
![Page 35: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/35.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Stil arhitectural de proiectare și dezvoltarede aplicații considerate drept servicii
care pot fi invocate de alte aplicații
![Page 36: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/36.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Paradigmă de dezvoltare a software-uluicare adoptă folosirea de servicii,
oferind funcționalități solicitate de utilizatori
resursele sunt disponibile via o suită de serviciiindependente ale căror implementărinu trebuie să fie cunoscute (black box)
![Page 37: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/37.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Componentele sistemului în ansambluau un grad mare de independență (de-coupling)
serviciile trebuie proiectate să interacționeze fără a exista dependențe între acestea
![Page 38: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/38.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Serviciile partajează un contract formal
necesitatea unei descrieri formale a serviciului:operații oferite (interfața serviciului)
maniera de interschimb a datelor (cerere + răspuns)maniera de descoperire (service discoverability)
calitatea unui serviciu (SLA – service-level agreement)
![Page 39: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/39.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Serviciile pot fi recompuse/orchestrateconform cerințelor sau contextului de exploatare
composable servicesreusable services
![Page 40: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/40.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soa
Serviciile nu vor depinde de starea comunicării(statelessness)
pentru a efectua o procesare, cantitatea de informațiece trebuie reținută trebuie să fie minimală
![Page 41: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/41.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
soade la aplicații Web dezvoltate tradițional
la arhitecturi bazate pe servicii
Jay O’Connor (2014)tech.bellycard.com/blog/migrating-to-a-service-oriented-architecture-soa/
![Page 42: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/42.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
structura conceptuală stratificată a unei platforme bazate pe servicii Web
protocoale (HTTP, SMTP,…)
servicii de regăsire: UDDI
descrieri de servicii: WSDL
context al serviciului (cine, de ce,…)
servicii de bază (calendar, tranzacții,…)
sist. tradiționale
server(e) backend
API
workflow engine
mașină virtuală
micro-/macro-serv.
ofertant/utilizator de servicii Web
![Page 43: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/43.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Există o modalitate pragmatică privinddezvoltarea și invocarea serviciilor Web?
![Page 44: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/44.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
serviciile Web pot fi dezvoltate via SOAP și/sau RESTS. Tilkov, REST: Not an Intro (2013)
speakerdeck.com/stilkov/rest-not-an-intro-1
service interface
service logic
business rules
data access
data
resources
hypermediarepresen-
tations:JSON, XML,…
HTTP
operations
SOAP
XML messages
WS-*
![Page 45: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/45.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: representational state transfer
Stil arhitectural de dezvoltare a aplicațiilor Webcu focalizare asupra reprezentării datelor
Roy Fieldingteză de doctorat, 2000 (University of California, Irvine)
www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
![Page 46: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/46.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Viziune complementară de implementare șiutilizare a serviciilor Web – fără SOAP
SOAP Envelope
SOAP Headerbloc antetbloc antet
SOAP Bodybloc corpbloc corpbloc corpbloc corp
![Page 47: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/47.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Rezultatul unei procesări conduce la obținereaunei reprezentări a unei resurse
![Page 48: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/48.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Rezultatul unei procesări conduce la obținereaunei reprezentări a unei resurse
resursă Web
utilizator având cont în cadrul unui sistem, mesaj al unei persoane, fotografie, flux de știri,
componentă software, set de date (dataset), model 3D,…
![Page 49: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/49.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Rezultatul unei procesări conduce la obținereaunei reprezentări a unei resurse
reprezentare pe baza unui format de date
textual sau binar
exemple tipice – formate deschise: HTML, JSON, CSV, PNG, SVG, PDF etc.
![Page 50: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/50.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Rezultatul unei procesări conduce la obținereaunei reprezentări a unei resurse
reprezentare pe baza unui format de date
formatul reprezentării e desemnat de tipuri MIMEtext/html, application/json, application/rdf+xml, image/png
detalii în N.Freed et al., Media Types, 26 septembrie 2019www.iana.org/assignments/media-types/media-types.xhtml
![Page 51: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/51.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Rezultatul unei procesări conduce la obținereaunei reprezentări a unei resurse
reprezentările aceleași resurse– desemnate de un URI unic – pot fi multiple
resursa
URI
reprezentare2
(JSON)reprezentare1
(HTML)
![Page 52: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/52.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Rezultatul unei procesări conduce la obținereaunei reprezentări a unei resurse
fiecare reprezentare a unei resurse are asociat un URL
resursa
URI
URLURL
reprezentare2
(JSON)reprezentare1
(HTML)
![Page 53: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/53.jpg)
Dr.
Sab
in B
ura
ga
pro
fs.in
fo.uaic.ro
/~busa
co
rest
Clienții (e.g., navigatoare Web, roboți, player-e etc.) interacționează cu reprezentările resurselor via verbe„accesează”: GET, „modifică”: POST, „șterge”: DELETE,…
resursa
URI
URLURL
GET POST GET DELETE
reprezentare2
(JSON)reprezentare1
(HTML)
![Page 54: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/54.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Verbele (acțiunile) sunt stipulate de un protocol
![Page 55: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/55.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
HyperText Transfer Protocol
protocol fiabil, de tip cerere/răspuns
port standard de acces: 80
profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html#week2
![Page 56: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/56.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
HTTP/1.1
standard Internet: RFC 2616 (1999)
din 2014, definit de RFC 7230—7235
www.w3.org/Protocols/
un tutorial: www.code-maze.com/http-series/
![Page 57: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/57.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
HTTP/2.0
RFC 7540 (2015)
axat asupra performanței
http2.github.io
![Page 58: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/58.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
HTTP/2.0
mesaje binare
reutilizarea conexiunii TCP (a single connection per host)
multiplexare (many parallel streams)
compresia anteturilor – HPACK
trimiterea mesajelor spre client (server push)
implementări: github.com/http2/http2-spec/wiki/Implementations
![Page 59: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/59.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
HTTP/3.0
următoarea generație de protocol WebHTTP over QUIC – quicwg.org
recurge la QUIC (Quick UDP Internet Connections)propus de Google, actualmente în curs de
standardizare la IETF (Internet Engineering Task Force)
alte detalii: daniel.haxx.se/http3-explained/
![Page 60: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/60.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
GET
accesează (preia) o reprezentare a unei resurse
nu conduce la modificarea stării serverului– siguranță (safe)
idempotență (idempotent) – cereri identice vor conduce la oferirea aceluiași răspuns (aceeași reprezentare)
![Page 61: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/61.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
HEAD
similară cu GET, dar furnizează doar meta-date(nu oferă reprezentarea propriu-zisă)
e.g., ultima actualizare, lungimea conținutului,…
![Page 62: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/62.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
PUT
înlocuiește (actualizează) o reprezentare de resursă saueventual creează o resursă la nivel de server Web
(al cărei URI e deja cunoscut)
uzual, returnează URI-ul resursei
nu e considerată safe, dar este idempotentă
![Page 63: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/63.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
PATCH
permite actualizarea parțială a unei reprezentări a unei resurse (PUT nu oferă o asemenea facilitate)
nu este safe și nici idempotentă
![Page 64: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/64.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
POST
creează o resursă (uzual, subordonată altei resurse)
opțional, pot fi realizate procesări suplimentare
nu este nici safe, nici idempotentă
clientul nu cunoaște a-prioricare va fi URI-ul resursei ce va fi create
![Page 65: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/65.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
DELETE
șterge (elimină) o resursă desemnată de un URI
este idempotentă
![Page 66: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/66.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
OPTIONS
permite clientului să determine diverse cerințe privitoare la o resursă (e.g., dacă o resursă poate fi ștearsă)
sau facilitățile expuse de un server (de exemplu, suportul oferit de un proxy)
![Page 67: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/67.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
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
fullstack-developer.academy/restful-api-design-post-vs-put-vs-patch/
![Page 68: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/68.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
GET /sparql?default-graph-uri=http%3A%2F%2Fdbpedia.org
&query=SELECT+DISTINCT+%3Fclass%0D%0A
WHERE+%7B%0D%0A++%3Fclass+a+owl%3AClass%0D%0A
%7D+LIMIT+7&format=application%2Fjson&timeout=30000 HTTP/1.1
Host: dbpedia.org
User-Agent: Mozilla/5.0 … Gecko/20100101 …
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en,en-GB;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: http://dbpedia.org/sparql
Connection: keep-alive
URL encoding
câmpuri-antet și valorile lor
un mesaj HTTP de tip cerere (request) trimis de client (uzual, un browser Web) spre server
aici, o cerere încapsulând o interogare SPARQL către DBpedia
![Page 69: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/69.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
HTTP/1.1 200 OK
Date: Web, 09 Oct 2019 07:03:52 GMT
Content-Type: application/json
Content-Length: 691
Connection: keep-alive
Server: Virtuoso/07.20.3232 (Linux) x86_64-generic-linux-glibc25
X-SPARQL-default-graph: http://dbpedia.org
Expires: Web, 09 Oct 2019 07:03:52 GMT
Cache-Control: max-age=604800
…
{ "head": { "link": [], "vars": ["class"] },
"results": { "distinct": false, "ordered": true, "bindings": [
{ "class": { "type": "uri",
"value": "http://dbpedia.org/ontology/Place" }},… ]
} }
un mesaj HTTP de tip răspuns (response) de la serveraici, în format JSON
tipul MIME al reprezentării oferite
câmp-antet nestandardizat
met
a-d
ate
con
țin
ut
(dat
e)
![Page 70: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/70.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Orice accesare a unei reprezentăriplasează aplicația – ori clientul Web – într-o starece va fi schimbată în urma unui transfer de date
(accesarea altei reprezentări)
![Page 71: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/71.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
resursa1
reprezentare1
(HTML)
http://blog.info/
resursa2
reprezentare2
(HTML)
http://blog.info/mesaj
resursa3
reprezentare3
(HTML)
http://blog.info/mesaj/edit
resursa4
reprezentare4
(Atom)
http://blog.info/stiri.xml
GET
GET
POST
![Page 72: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/72.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
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/edit
resursa4
reprezentare4
(Atom)
http://blog.info/stiri.xml
GET
GET
POST
![Page 73: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/73.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Transferul se realizează prin protocolul HTTP
Reprezentarea este modelată conform unui format– e.g., JSON sau XML – și
indicată prin tipuri MIME (media types)
Adresabilitatea se rezolvă via URI
![Page 74: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/74.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Aplicațiile care invocă funcționalități (servicii)consumă reprezentări de resurse – în stilul pull
![Page 75: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/75.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Fiecare cerere este considerată independentă,fără a se lua în considerație contextul
stateless server
![Page 76: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/76.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Reprezentările de resurse pot fi stocate temporar
caching
![Page 77: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/77.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
stat
eles
s se
rver
client
cache
client
cache
adaptare după B. Mulloy (2012)
![Page 78: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/78.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
stat
eles
s se
rver
client
cache
client
cache
adaptare după B. Mulloy (2012)
fiecare cerere trebuie să conțină toateinformațiile necesare procesării
![Page 79: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/79.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
stat
eles
s se
rver
client
cache
client
cache
adaptare după B. Mulloy (2012)
contextul activitățilornu-i stocat de server
![Page 80: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/80.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
stat
eles
s se
rver
client
cache
client
cache
adaptare după B. Mulloy (2012)
clientul are dreptul săreutilizeze datele recepționate
![Page 81: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/81.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Aplicația Web dezvoltată va fi stratificată
layered system
![Page 82: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/82.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client
state-less
server
state-less
server
state-less
server
loadbalan
cergatewayfire-
wall
adaptare după B. Mulloy (2012)
![Page 83: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/83.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client
state-less
server
state-less
server
state-less
server
loadbalan
cergatewayfire-
wall
adaptare după B. Mulloy (2012)
fiecare strat oferăservicii stratelor
vecine
![Page 84: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/84.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client
state-less
server
state-less
server
state-less
server
loadbalan
cergatewayfire-
wall
adaptare după B. Mulloy (2012)
un strat nu poate„vedea” strateneînvecinate
![Page 85: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/85.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client
state-less
server
state-less
server
state-less
server
loadbalan
cergatewayfire-
wall
adaptare după B. Mulloy (2012)
stratele pot încapsula(„ascunde”) sisteme
tradiționale – black box
![Page 86: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/86.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
client
state-less
server
state-less
server
state-less
server
loadbalan
cergatewayfire-
wall
adaptare după B. Mulloy (2012)
are rol în asigurareaperformanței/
fiabilității
![Page 87: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/87.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: exemplu
Serviciu pentru managementul adreselor Web favorite(bookmark-uri), cu posibilitatea atașării de termeni de conținut (tag-uri) și comentarii
social bookmarking
abordări similare: Delicious, Digg, Pocket, Reddit etc.
![Page 88: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/88.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
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
![Page 89: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/89.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
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 detag-uri
/tags GET application/atom+xml
Paginaprincipală
/ GET application/xml
![Page 90: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/90.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
GET /bookmarks200 OKContent-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ținereabookmark-urilor
digest – hash (SHA-1, SHA-3,…)
![Page 91: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/91.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
GET /bookmarks/a211528f…bdcf200 OKContent-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
![Page 92: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/92.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
POST /bookmarksContent-type: application/bookmark+xml…201 CreatedLocation: /bookmarks/a211528f…bdcf
PUT /bookmarks/a211528f…bdcfContent-type: application/bookmark+xml…200 OK
creareaunui bookmark
înlocuireaunui bookmark
![Page 93: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/93.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Resursele se denumesc folosind URI-uri (URL-uri)
Reprezentările sunt interconectate prin URL-uri
Pot exista intermediari (proxy, cache, porți)între clienți și resurseperformanță, securitate,...
Transferul de date poate fi și asincron – stil Ajax/Comet
![Page 94: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/94.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
coO resursă poate avea asociate reprezentărice 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
![Page 95: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/95.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
caz concret: framework-ul LoopBack – loopback.io/doc/
operații↔REST↔model de implementare↔SQL
![Page 96: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/96.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest
Interacțiunea cu un serviciu Web dezvoltatîn stilul REST se poate face via un API (Application Programming Interface)
vezi prelegerea următoare
![Page 97: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/97.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Putem adopta o metodologie vizânddezvoltarea de servicii Web (API-uri)
aliniate paradigmei REST?
![Page 98: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/98.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Divizarea în resurse a setului de dateale problemei
clase tipice de resurse:Utilizatori
Documente – alternative: Fotografii, Produse, Software,…Metadate – e.g., Comentarii, Formate, Locații, Platforme etc.
![Page 99: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/99.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Divizarea datelor problemei în categorii
cazuri concrete:SoundCloud – developers.soundcloud.com/docs/api/
Tracks Users Me Playlists Groups Comments
StackExchange – api.stackexchange.com
Answers Badges Comments Questions Revisions Tags Users
World of Warcraft – dev.battle.net/io-docs
Characters Guilds Realms Auctions Items
![Page 100: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/100.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
„Numirea” prin URI a fiecărei resurse
exemplificări:
http://web.info/Utilizatori/tux
http://web.info/Documente/pinguini-cu-mere-albastre
![Page 101: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/101.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
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 autentificathttps://twitter.com/followers
![Page 102: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/102.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Organizarea resurselor
aceste resurse (object instances) pot fi organizate în colecții (collections) sau depozite (stores)
a se consulta D. Denicola, Creating Truly RESTful APIs (2013)www.slideshare.net/domenicdenicola/creating-truly-res-tful-apis
![Page 103: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/103.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Organizarea resurselor
colecție
catalog de resurse gestionate de serverclienții pot propune alterarea colecției
serverul decide care-i rezultatul unei operații
exemple (GitHub): /orgs/openstack/repos, /orgs/openstack/events
![Page 104: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/104.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Organizarea resurselor
depozit
„rezervă” de resurse gestionată de client(inclusiv filtrare, sortare, paginare, accesare meta-date,…)
exemplu (GitHub): /users/openstack/repos?page=2&per_page=3
![Page 105: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/105.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Proiectarea reprezentării(lor) acceptatece 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 – Yet Another Markup Language
![Page 106: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/106.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Integrarea resurselorvia legături hipertext + 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
![Page 107: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/107.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: metodologie
Crearea de studii de caz
specificarea condițiilor de eroare și/sau de excepție,inclusiv aspecte privind controlul versiunilor API-ului
![Page 108: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/108.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
StrongLoop API (IBM)operații cu resurse specifice – aici Users
![Page 109: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/109.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
StrongLoop APItestarea interactivă a API-ului
strongloop.com/strongblog/node-js-rest-api-openshift-redhat/
![Page 110: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/110.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Aspecte practice de interes pentru dezvoltatori?
![Page 111: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/111.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
URL-urile desemnând resurse (concepte) de interes trebuie să fie simple și intuitive
utilizarea substantivelor pentru fiecare „lucru”
colecții de resurse (uzual, la plural)/students
identificatori unici pentru membrii unei colecții/students/tuxy (concret) vs. /students/69 (abstract)
![Page 112: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/112.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
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
exemplu (GitHub):/repos/Microsoft/PTVS/commits/e95e15…7a3bf91baff88
![Page 113: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/113.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Folosirea verbelor (metodelor) HTTP pentru efectuareade operații asupra unor (colecții de) resurse
resursa(URI)
POST (creează)
GET (accesează)
PUT (actualizează)
DELETE (șterge)
/studentscreează
un student noulistează studenții
existențiactualizează
un set de studențișterge toțistudenții
/students/69
(un URL dejaexistent)
eroare😞oferă date
despre student
dacă există, actualizează,altfel eroare
ștergestudentulrespectiv
![Page 114: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/114.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Tratarea erorilor
folosirea codurilor de stare HTTP – httpstatuses.com
exemple tipice:200 OK, 204 No Content, 206 Partial Content
303 See Other, 304 Not Modified400 Bad Request, 401 Unauthorized, 403 Forbidden,
404 Not Found, 405 Method Not Allowed500 Internal Server Error, 503 Service Unavailable
![Page 115: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/115.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Tratarea erorilor
mesajele întoarse trebuie să includă informații utile
GitHub – cod de stare HTTP oferit: 404{ "message": "Not Found",
"documentation_url": "https://developer.github.com/v3" }
versusNew York Times (Semantic API) – cod de stare HTTP: 401
{ "message": "No API key found in headers or querystring" }
![Page 116: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/116.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
“Never release an API without a versionand 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/
![Page 117: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/117.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
specificarea versiunii
în antetul cererii HTTP
Accept: application/vnd.heroku+json; version=3
în unele cazuri, folosind un antet propriu: X-API-Version
![Page 118: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/118.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
specificarea versiunii
în cadrul URL-ului – eventual, ca parametru
https://roads.googleapis.com/v1/nearestRoads
https://ec2.amazonaws.com/?Action=RunInstances&Version=2016-11-15
![Page 119: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/119.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Controlul versiunilor API-ului dezvoltat
specificarea versiunii
continuous versioningacces via același URI, indiferent de versiunea curentă
practica preferată (“Cool URIs don’t change”)
nordicapis.com/continuous-versioning-strategy-for-internal-apis/
![Page 120: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/120.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Paginarea și oferirea de răspunsuri parțiale
de obicei, se folosesc parametri precum limit și offset
/students?limit=33&offset=54
filtrele opționale pot fi delimitate de virgulă/students?fields=name,age,year,email
![Page 121: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/121.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
interogări interactive asupra API-ului oferit de The New York Times
developer.nytimes.com
![Page 122: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/122.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
răspuns în format JSON
diverse (meta-)date oferite de serverul Web
![Page 123: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/123.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Eterogenitatea formatelor reprezentărilor întoarse
indicarea formatului în URL via un parametru opțional?alt=json (Google Data)
specificarea formatului acceptat în antetul cererii HTTPAccept: application/json (Digg)
precizarea formatului în numele resursei solicitate/venue.json (Foursquare)
![Page 124: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/124.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: privire pragmatică
Utilizarea subdomeniilor pentru API-uri diferiteale aceluiași ofertant de servicii
exemplificare:search.twitter.com
stream.twitter.com
api.twitter.com
![Page 125: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/125.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Cum pot fi accesatereprezentări de resurse Web prin REST?
![Page 126: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/126.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Biblioteci/API-uri implementând HTTP
Apache HttpComponents (Java): hc.apache.org
Guzzle (PHP7): docs.guzzlephp.org/en/stable/
http (pachet Go): golang.org/pkg/net/http/
http.client (Python 3): docs.python.org/3/library/http.client.html
Hyper Reqwest (biblioteci Rust):hyper.rs docs.rs/reqwest
![Page 127: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/127.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Biblioteci/API-uri implementând HTTP
libcURL (C; portări Perl, PHP, Ruby,…): curl.haxx.se/libcurl/
LibHTTP (bibliotecă C): www.libhttp.org
restify (framework Node.js): www.npmjs.com/package/restify
RestKit (macOS + iOS): github.com/RestKit/RestKit
RestSharp (pentru .NET): restsharp.org
![Page 128: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/128.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz: accesarea datelor publice privitoare
la 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,…
![Page 129: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/129.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
detalii la swapi.co/documentation
{
"name": "Leia Organa",
"height": "150",
"mass": "49",
"hair_color": "brown",
"skin_color": "light",
"eye_color": "brown",
"birth_year": "19BBY",
"gender": "female",
"homeworld": "http://swapi.co/api/planets/2/",
"films": [ "http://swapi.co/api/films/6/",… ],
"species": [ "http://swapi.co/api/species/1/" ],
"vehicles": [
"http://swapi.co/api/vehicles/30/" ],
"starships": [ ],
"created": "2014-12-10T15:20:09.791000Z",
"edited": "2014-12-20T21:17:50.315000Z",
"url": "http://swapi.co/api/people/5/"
}
răspuns disponibil în format
JSON
![Page 130: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/130.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz:preluarea datelor despre artefacte culturale oferite
de Metropolitan Museum of Artmetmuseum.github.io
disponibile liber sub licența Creative Commons Zero
Objects – colecții de resurseObject – include (meta-)date de interes
![Page 131: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/131.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz:preluarea datelor despre artefacte culturale
API-ul REST oferit poate fi accesat fără autentificarefolosind domeniul collectionapi.metmuseum.org
rezultatele interogărilor sunt disponibile în format JSON
parte componentă a inițiativei Google Arts & Cultureartsandculture.google.com
![Page 132: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/132.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz:preluarea datelor despre artefacte culturale
pasul #1:căutarea – cerere GET – unor resurse de interes
collectionapi.metmuseum.org/public/collection/v1/search?q=Romania
![Page 133: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/133.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz:preluarea datelor despre artefacte culturale
pasul #1:căutarea – cerere GET – unor resurse de interes
se obține o colecție JSON de identificatori – objectIDs
{ "total": 47, "objectIDs": [ 98440, 32843,…, 730799 ] }
![Page 134: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/134.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz:preluarea datelor despre artefacte culturale
pasul #2:accesul – cu GET – la datele vizând o resursă specifică
collectionapi.metmuseum.org/public/collection/v1/objects/32843
objectID
![Page 135: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/135.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Studiu de caz:preluarea datelor despre artefacte culturale
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),…
![Page 136: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/136.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare – exemplul 3câmpurile-antet ale cererii HTTP:
Accept: application/json,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en,en-GB;q=0.5
Connection: keep-alive
Host: collectionapi.metmuseum.org
User-Agent: Mozilla/5.0 … Gecko/20100101 Firefox/69.0
câmpurile-antet ale răspunsului furnizat de API:
Access-Control-Allow-Origin: *
Content-Encoding: gzip
Content-Type: application/json; charset=UTF-8
Date: Web, 09 Oct 2019 10:38:18 GMT
Transfer-Encoding: chunked
X-CDN: Incapsula
![Page 137: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/137.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare – exemplul 3
răspunsul JSON întors de serviciul Web apelat
![Page 138: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/138.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Biblioteci/API-uri implementând HTTP
permit dezvoltarea de aplicații desktop, mobile etc.
suport pentru crearea de aplicatii hibride (mash-up-uri) la nivel de server
nu funcționează în navigatorul Web
atenție la problemele de securitate ce pot apărea!
![Page 139: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/139.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: implementare
Navigatoarele Web actuale
nu necesită un API distinct pentru acces via HTTP
disponibilitate pe orice platformă
suport pentru REST prin obiectul XMLHttpRequest (Ajax),Fetch API (HTML5) ori WebSocket API (HTML5)
![Page 140: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/140.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: dezvoltare – exemplificări
ASP.NET MVC + Web API (C# et al.): www.asp.net/web-api
Express, LoopBack, 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/
![Page 141: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/141.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: dezvoltare – exemplificări
Cornice, Django, Eve, Pecan (Python)
Grape, RESTRack, Ruby on Rails (Ruby)www.ruby-toolbox.com/categories/API_Builders
micro-framework-uri PHP populare:Fat-Free – fatfreeframework.com
Lumen – lumen.laravel.com
Slim – www.slimframework.com
Siler – siler.leocavalcante.dev
a se consulta și github.com/marmelab/awesome-rest
![Page 142: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/142.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: dezvoltare
Servicii publice ce pot fi consumate via REST – exemple:AIDSInfo, Amazon, Basecamp, Blip.tv, DBpedia, eBay,
Ericsson, Facebook, GitHub, Google, ISBNdb, LinkedIn, Mastercard, Open Movie Database, Pipl, Quora, Tumblr,
Wikidata,…
de explorat situl ProgrammableWebwww.programmableweb.com/category/all/apis
+lista API-urilor publice
github.com/abhishekbanthia/Public-APIs
![Page 143: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/143.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Putea utiliza servicii Web (API-uri)pentru autorizare și autentificare?
![Page 144: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/144.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autorizare
Etape esențiale:
obținere cheie de acces 🔑
autentificarea + autorizarea aplicației ⎆⧉
obținerea acordului utilizatorului ⌨⍝👀
apelarea funcționalităților serviciului (via API)
![Page 145: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/145.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autorizare
Pași uzuali de urmat pentru implementarea unei aplicații ce va invoca un serviciu Web pe baza unui API public:
(1) înregistrarea aplicației conceputevia situl entității furnizoare a serviciului
cheie de acces – API key, consumer key, developer key
![Page 146: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/146.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autorizare
Pași uzuali de urmat pentru implementarea unei aplicații ce va invoca un serviciu Web pe baza unui API public:
(2) pe baza acestei chei, aplicația se va putea autentificapentru a putea fi autorizată să acceseze serviciul dorit
pot fi impuse diverse politici de acces (permissions):doar consultare (read), posibilitatea editării etc.
![Page 147: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/147.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autorizare
Pași uzuali de urmat pentru implementarea unei aplicații ce va invoca un serviciu Web pe baza unui API public:
(3) autentificarea și autorizarea aplicațieiau loc cu acordul utilizatorului
dacă utilizatorul nu este autentificat, i se vor solicitainformațiile de autentificare (e.g., nume + parola)
– eventual, folosind 2FA (Two Factor Auth) –,apoi va putea autoriza aplicația să aibă acces la date
via serviciul Web furnizat
![Page 148: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/148.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autorizare
Pași uzuali de urmat pentru implementarea unei aplicații ce va invoca un serviciu Web pe baza unui API public:
(4) aplicația apelează funcționalitățile oferite de serviciupentru preluarea/modificarea datelor de interes,
conform politicilor de acces
sesiunea curentă va fi stabilită și menținutăpe baza unor informații de autentificare (auth tokens)
![Page 149: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/149.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
oauth
Autorizarea unei aplicații să acceseze date private într-un mod standardizat – pe baza tehnologiilor
Web actuale – se poate realiza via OAuth
protocol deschis – RFC 6749OAuth 1.0 (2010), OAuth 2.0 (2012)
oauth.net/2/
L. Spyna, An OAuth 2.0 Introduction for Beginners (2018):itnext.io/an-oauth-2-0-introduction-for-beginners-6e386b19f7a9
![Page 150: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/150.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
securitatea datelor
autorizarea prin OAutha aplicației JS Bin
pentru a obține accesul la datele unui utilizator
deținute de GitHub
![Page 151: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/151.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
securitatea datelor
procesele de autorizare a accesului la o resursă Webconform Dominik Mengelt (2013)
![Page 152: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/152.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
securitatea datelor
exemplu concret – Facebook: autorizare cu diverse permisiuni – e.g., age_range, email (acces la adresa de e-mail a unui utilizator),
public_profile, user_birthday, user_hometown, user_friends, user_likes, user_photos, rsvp_event și altele
developers.facebook.com/docs/facebook-login/permissions/v2.0
![Page 153: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/153.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
oauth
Biblioteci (server și/sau client) disponibile pentru C, C++, Go, Erlang, Java, JavaScript, Objective-C, .NET,
Perl, PHP, Python, Ruby, Swift,…
oauth.net/code/
![Page 154: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/154.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
oauth
Servicii proxy de autentificare/autorizare prin OAuth
Auth0 – auth0.com
Hydra – github.com/ory/hydra
OAuth – oauth.io
Okta – developer.okta.com
![Page 155: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/155.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: dezvoltare – oauth
exemplificare: hello.js – soluție modulară, la nivel de client, vizând autentificarea și
accesarea serviciilor Web via RESTadodson.com/hello.js/
![Page 156: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/156.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
oauth
Autorizare via servicii Web specifice – exemple:
GitHub – developer.github.com/v3/oauth/
Google – developers.google.com/identity/protocols/OAuth2
LinkedIn – developer.linkedin.com/docs/oauth2
Live Connect (Microsoft) – http://tinyurl.com/zztr97h
Stack Exchange – api.stackexchange.com/docs/authentication
Twitter – dev.twitter.com/oauth
WordPress – developer.wordpress.com/docs/oauth2/
![Page 157: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/157.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: dezvoltare – openid
de experimentat accesul la diverse date (e.g., persoane de contact via Google Contacts API) pe baza OAuth 2.0 Playground
developers.google.com/oauthplayground/
sesiunea curentă e păstrată într-un jeton (token) JSON
![Page 158: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/158.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
bazate pe sesiunea Web via SID (Session IDentifier)
implicit, Web-ul e stateless
![Page 159: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/159.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
folosind jetoane (tokens)
token based authentication
![Page 160: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/160.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
fără parolă (passwordless)
one-time-use URL
exemplu: Tumblr
![Page 161: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/161.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
SSO (Single Sign-On)
autentificarea utilizatorilor în cadrul mai multor aplicații înrudite
![Page 162: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/162.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
autentificare socială via alte conturi de utilizator
de exemplu, via rețele sociale sau alte situri Web de încredere
![Page 163: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/163.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
2FA (Two-Factor Authentication)
utilizatorul trebuie să ofere minim 2 probe (factors) referitoare la identitatea sa
cunoștințe ori obiecte deținute exclusiv de acea persoană
de studiat și TOTP (Time-Based One-Time Password Algorithm) – RFC 6238: tools.ietf.org/html/rfc6238
![Page 164: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/164.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rest: dezvoltare
autentificare multi-factor (2FA): twofactorauth.org
![Page 165: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/165.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
autentificare biometrică
bazate pe amprentă (fingerprint recognition)recunoașterea facială sau a unor organe
scanarea ochiului (iris, retină)identificare vocală
analizarea codului genetic (DNA matching)
www.biometricsinstitute.org
![Page 166: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/166.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare:
autentificare via dispozitiv hardware
exemplu tipic: smartcard
![Page 167: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/167.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
autentificare
Metode de autentificare – privire de ansamblu:
bazate pe sesiunea Webfolosind jetoane (token based authentication)
fără parolă (passwordless)SSO (Single Sign-On)autentificare socială
2FA (Two-Factor Authentication)autentificare biometrică
autentificare via dispozitiv hardware
hackernoon.com/how-do-you-authenticate-mate-f2b70904cc3a
![Page 168: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/168.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
openid
OpenID
manieră descentralizată de autentificare a utilizatoruluila nivel de Web pe baza paradigmei SSO
utilizatorul poate demonstra că deține un URL specificmenit a-l identifica on-line via un ofertant (serviciu)
de identitate digitală (identity provider)e.g., folosind o aplicație Web socială
![Page 169: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/169.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
openid
Fiecare identitate a unui utilizator e desemnată de un URL (stabilit de identity provider)
exemplu: steamcommunity.com/openid/id/steamid
pentru a-și confirma identitatea,utilizatorul va trebui să se autentifice:
nume de cont + parolă, smart card, date biometrice,…
![Page 170: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/170.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
openid
OpenID Connect
oferă un nivel vizând identitatea utilizatorului (identity layer) pe baza protocolului OAuth 2
formatul de date folosit: JWT – JSON Web Tokenstandardizat de RFC 7519
openid.net/connect/
![Page 171: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/171.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
openid
OpenID Connect
biblioteci open source disponibilepentru C, C#, Java, JavaScript, PHP, Python, Ruby,…
openid.net/developers/libraries/
![Page 172: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/172.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
openid
OpenID Connect
suport oferit de serverul Web:
mod_auth_openidc – modul Apachegithub.com/pingidentity/mod_auth_openidc
L. Crilly, Authenticating API Clients with JWT (2016)www.nginx.com/blog/authenticating-api-clients-jwt-nginx-plus/
![Page 173: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/173.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
Mesaje – de autentificare sau interschimb de informații –
vehiculate în format JWT
resurse de interes + instrumente oferite de jwt.io
jeton JWT
![Page 174: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/174.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
openid
În conjuncție cu JWT, a se considera specificațiileJOSE – JSON Object Signing and Encryption:
specificarea semnăturilor digitaleJWS – JSON Web Signature: tools.ietf.org/html/rfc7515
definirea metodelor criptograficeJWE – JSON Web Encryption: tools.ietf.org/html/rfc7516
reprezentarea cheilor criptograficeJWK – JSON Web Key: tools.ietf.org/html/rfc7517
identificarea & înregistrarea algoritmilor criptograficiJWA – JSON Web Algorithms: tools.ietf.org/html/rfc7518
![Page 175: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/175.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
rezumat
⤄aplicații orientate spre servicii Web în stilul REST
aspecte vizând autorizarea și autentificarea
![Page 176: Dezvoltarea aplicațiilorWebbusaco/teach/courses/wade/... · 2019-10-07 · ga .ro / ~ co nevoiale dezvoltatorilorWeb Soluții multi-platformă, slab-conectate integrare (în timp-real)](https://reader031.vdocumente.com/reader031/viewer/2022040221/5e39a086dc0f08370611927d/html5/thumbnails/176.jpg)
Dr.
Sab
in B
ura
ga
profs.in
fo.uaic.ro/~busa
co
episodul viitor: arhitectura aplicațiilor Webde la API-uri și mashup-uri la proiectare arhitecturală