isvu rest api u 2014+ - unizg.hr...• kako vas potaknuti na komunikaciju putem [email protected] mailing...
TRANSCRIPT
![Page 2: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/2.jpg)
22. siječnja 2014.
Richardson Maturity Model
• Level 0– One URI– SOAP, XML RPC, POX
• Level 1– Many URIs– One HTTP method
• Level 2– Many URIs– Multiple HTTP methods
• Level 3– Level2 + Hypermedia (Resources decribe their own capabilities and
interconnections)
ISVU REST API
![Page 3: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/3.jpg)
22. siječnja 2014.
Richardson Maturity Model
• Level 0– One URI– SOAP, XML RPC, POX
• Level 1– Many URIs– One HTTP method
• Level 2– Many URIs– Multiple HTTP methods
• Level 3– Level2 + Hypermedia (Resources decribe their own capabilities and
interconnections)
ISVU REST API
„A truly RESTful API looks like hypertext.” – RoyFielding
![Page 4: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/4.jpg)
22. siječnja 2014.
HATEOAS (1)
• HATEOAS (Hypermedia as the Engine of Application State)– The principle is that a client interacts with a network
application entirely through hypermedia provided dynamically by application servers. A REST client needs no prior knowledge about how to interact with any particular application or server beyond a generic understanding of hypermedia.
![Page 5: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/5.jpg)
22. siječnja 2014.
HATEOAS (2)
• A REST client enters a REST application through a simple fixed URL.
• All future actions the client may take are discovered within resource representations returned from the server.
• The media types used for these representations, and the link relations they may contain, are standardized.
• The client transitions through application states by selecting from the links within a representation or by manipulating the representation in other ways afforded by its media type. In this way, RESTful interaction is driven by hypermedia, rather than out-of-band information.
http://en.wikipedia.org/wiki/HATEOAS
way, RESTful interaction is driven by hypermedia, rather than
![Page 6: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/6.jpg)
22. siječnja 2014.
HATEOAS (3)
• „Hypermedia Types are MIME media types that contain native hyper-linking semantics that induce application flow. For example, HTML is a hypermedia type; XML is not.” - Mike Amundsen
![Page 7: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/7.jpg)
22. siječnja 2014.
HATEOAS (3)
• „Hypermedia Types are MIME media types that contain native hyper-linking semantics that induce application flow. For example, HTML is a hypermedia type; XML is not.” - Mike Amundsen
• Koji hypermedia type koristiti?– Nema standarda za REST API-je– HAL (Hypertext Application Language)– Collection+JSON– ...
![Page 8: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/8.jpg)
22. siječnja 2014.
HAL (1)
• HAL (HypertextApplication Language) - Alean hypermedia typehttp://stateless.co/hal_specification.html
– HAL is a format you can use in your API that gives you a simple way of linking. It has two variants, one in JSON (application/hal+json)and one in XML(application/hal+xml).
![Page 9: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/9.jpg)
22. siječnja 2014.
HAL (2)<resource href="/orders">
<link rel="next" href="/orders?page=2" />
<link rel="find" href="/orders{?id}" templated="true" />
<link rel="admin" href="/admins/2" title="Fred" />
<link rel="admin" href="/admins/5" title="Kate" />
<currentlyProcessing>14</currentlyProcessing>
<shippedToday>20</shippedToday>
<resource rel="order" href="/orders/123">
<link rel="customer" href="/customers/7809" />
<link rel="basket" href="/baskets/98712„ />
<total>30.00</total>
<currency>USD</currency>
<status>shipped</status>
</resource>
<resource rel="order" href="/orders/124">
...
</resource>
</resource>
![Page 10: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/10.jpg)
22. siječnja 2014.
HAL (2)<resource href="/orders">
<link rel="next" href="/orders?page=2" />
<link rel="find" href="/orders{?id}" templated="true" />
<link rel="admin" href="/admins/2" title="Fred" />
<link rel="admin" href="/admins/5" title="Kate" />
<currentlyProcessing>14</currentlyProcessing>
<shippedToday>20</shippedToday>
<resource rel="order" href="/orders/123">
<link rel="customer" href="/customers/7809" />
<link rel="basket" href="/baskets/98712„ />
<total>30.00</total>
<currency>USD</currency>
<status>shipped</status>
</resource>
<resource rel="order" href="/orders/124">
...
</resource>
</resource>
![Page 11: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/11.jpg)
22. siječnja 2014.
HAL (2)<resource href="/orders">
<link rel="next" href="/orders?page=2" />
<link rel="find" href="/orders{?id}" templated="true" />
<link rel="admin" href="/admins/2" title="Fred" />
<link rel="admin" href="/admins/5" title="Kate" />
<currentlyProcessing>14</currentlyProcessing>
<shippedToday>20</shippedToday>
<resource rel="order" href="/orders/123">
<link rel="customer" href="/customers/7809" />
<link rel="basket" href="/baskets/98712„ />
<total>30.00</total>
<currency>USD</currency>
<status>shipped</status>
</resource>
<resource rel="order" href="/orders/124">
...
</resource>
</resource>
Link Relations (IANA)
http://www.iana.org/assignments/link-
relations/link-relations.xml
![Page 12: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/12.jpg)
22. siječnja 2014.
HAL (2)<resource href="/orders">
<link rel="next" href="/orders?page=2" />
<link rel="find" href="/orders{?id}" templated="true" />
<link rel="admin" href="/admins/2" title="Fred" />
<link rel="admin" href="/admins/5" title="Kate" />
<currentlyProcessing>14</currentlyProcessing>
<shippedToday>20</shippedToday>
<resource rel="order" href="/orders/123">
<link rel="customer" href="/customers/7809" />
<link rel="basket" href="/baskets/98712„ />
<total>30.00</total>
<currency>USD</currency>
<status>shipped</status>
</resource>
<resource rel="order" href="/orders/124">
...
</resource>
</resource>
URI Template (RFC6570)
http://tools.ietf.org/html/rfc6570
![Page 13: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/13.jpg)
22. siječnja 2014.
HATEOAS & HAL @ ISVU REST API (1)• Zahtjev:GET
https://webtest.testisvu.srce.hr/api/
Accept: application/hal+json
• Odgovor:{
"_links":{
"nastavniprogram":{
"href":"https://webtest.testisvu.srce.hr/api/vu/120/nastavniprogram"
},
"nastavniplan":{
"href":"https://webtest.testisvu.srce.hr/api/vu/120/nastavniplan"
},
"profile":{
"href":"https://webtest.testisvu.srce.hr/api/dokumentacija/hal/index.html"
}
}
}
![Page 14: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/14.jpg)
22. siječnja 2014.
HATEOAS & HAL @ ISVU REST API (2)• Zahtjev: https://webtest.testisvu.srce.hr/api/vu/120/nastavniplan/
rok/predmet/15073/akademskagodina/2010
• Odgovor:
{
"_embedded":[
{
"datumRoka":"2011-07-06 00:00",
"vrstaRoka":{
"oznaka":"R",
"opis":"redovni rok"
},
"pismeni":"DA",
"vrijemePrijaveDo":"2011-07-04 23:59",
"vrijemeOdjaveDo":"2011-07-05 12:00",
"zakljucan":"DA",
"objavljeniRezultatiPismenog":"DA",
"_links":{
"ispit.usmeni.rezultati":{
"href":"https://.../ispit/usmeni/predmet/15073/datum/2011/7/6"
},
"ispit.prijave":{
"href":"https://.../ispit/prijava/predmet/15073/datum/2011/7/6"
}
}
![Page 15: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/15.jpg)
22. siječnja 2014.
HATEOAS & HAL @ ISVU REST API (3)https://www.isvu.hr/api/dokumentacija/hal/index.html
![Page 16: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/16.jpg)
22. siječnja 2014.
Nove (moguće) funkcionalnosti
• Cache-iranje– Trenutno se cache-ira mali skup podataka– Analize zahtjeva pokazuju da se nema što cache-irati – rijetko se
ponavlja zahtjev u istom danu• Limitiranje broja zahtjeva
– Trenutno nema limita– Smanjiti/eliminirati mogućnost da jedan korisnik onemogući
korištenje sustava ostalim korisnicima
• Implementirati opciju filtriranja zahtjeva po IP adresi za pojedinog klijenta
• Resursi „što se sve izmijenilo/dogodilo u proteklom periodu?”
• ISVU REST API ima jednu instancu – po potrebi ćemo kreirati
klaster
![Page 17: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/17.jpg)
22. siječnja 2014.
Korisnički zahtjevi
![Page 19: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/19.jpg)
22. siječnja 2014.
Razgovor
![Page 20: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/20.jpg)
22. siječnja 2014.
Razgovor
• Na koje probleme nailazite u korištenju?
• Što mislite o dokumentaciji?
• Zašto ne koristite modul za analizu rada i korištenja?
https://www.isvu.hr/api/analitika/
• Kako Vam olakšati međusobnu suradnju?
• Kako Vas potaknuti na komunikaciju putem [email protected] mailing liste?• Koji su Vam daljnji planovi?
• Što bi se trebalo promijeniti kod sljedećeg ovakvog okupljanja?
• Koliko često bi trebali organizirati ovakvo događanje?
• Molim da nam pošaljete prezentacije na [email protected] radi objave
![Page 21: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/21.jpg)
22. siječnja 2014.
Program• 12:00 - 12:20 „Uvodna riječ - Zašto REST API?” - Denis Kranjčec, Srce
• 12:20 - 12:40 „Kako je implementiran ISVU REST API?” - Estera Prendivoj, Srce• 12:40 - 13:10 „Tehničko veleučilište u Zagrebu” -
Ivica Dodig, Ivan Cesar i Davor Cafuta• 13:10 - 13:25 „ISVU REST API na FOI, stanje i planovi” -
Darko Grabar i Željko Šmaguc, FOI
• 13:25 - 13:45 pauza
• 13:45 - 14:00 „NEO-MRKVE” - doc. dr. sc. Alfonzo Baumgartner, dipl. ing, ETFOS• 14:00 - 14:15 „Primjena digitalne olovke u ISVU sustavu” -
doc. dr. sc. Irena Galić, prof., ETFOS
• 14:15 - 14:30 „ISVU API kao potpora sustavu za e-učenje Medicinskog fakulteta
Sveučilišta u Zagrebu” - Andrej Vitez, MEF• 14:30 - 14:45 „Povezivanje sustava Merlin s ISVU-om” - Zvonko Martinović, Srce
• 14:45 - 15:05 pauza
• 15:05 - 15:35 „Quilt CMS is so 'API!” -Svebor Prstačić, Siniša Tomić i Vlatka Paunović, FER
• 15:35 - 15:55 „ISVU REST API u 2014+” - Denis Kranjčec, Srce
• 15:55 - 16:15 Razgovor
![Page 22: ISVU REST API u 2014+ - unizg.hr...• Kako Vas potaknuti na komunikaciju putem api@isvu.hr mailing liste? • Koji su Vam daljnji planovi? • Što bi se trebalo promijeniti kod sljedećeg](https://reader030.vdocuments.us/reader030/viewer/2022040719/5e28087384c5a20c400b3325/html5/thumbnails/22.jpg)
22. siječnja 2014.
Okupljanje korisnika ISVU-
REST API u ISVU