ISVU REST API v2 - HAL
Sadržaj
Izjava o pristupačnosti
Ova verzija ISVU REST API-ja implementira web servis temeljen na HATEOAS ograničenju REST arhitekture.
Implementacija koristi Hypertext Application Language (HAL).
HAL specifikacija na standardan i
jednostavan način omogućava povezivanje između resursa. Koristeći HAL i standardne HTTP metode (GET, POST, PUT i DELETE) API je lakše čitljiv i
programeru i aplikaciji koja ga koristi te time i lakši za korištenje, istraživanje API-ja te za razvoj klijentskih aplikacija.
Početni URL je https://www.isvu.hr/api/. Svi ostali URL-ovi se mogu mijenjati kroz vrijeme.
API definira koji se resurs nalazi iza kojeg linka. Link je jedinstveno određen svojim "rel" atributom.
Svi objavljeni linkovi se neće mijenjati kroz vrijeme. URL na koji link pokazuje, "href" atribut, može se mijenjati kroz vrijeme.
Reprezentacije resursa koje se nalaze na pojedinom URL-u mogu se proširivati kroz vrijeme. To naprimjer znači da ista reprezentacija može dodavati
nove JSON name/value podatke, ali nikada neće mijenjati jednom objavljene JSON name/value podatke (Open content).
Linkovi koje su izloženi kroz pojedinu reprezentaciju resursa mogu se mijenjati kroz vrijeme iako se to prvenstveno odnosi na dodavanje novih linkova.
Trenutno je podržana JSON varijante HAL-a pod nazivom application/hal+json.
Uz svaki link dodan je barem jedan primjer u application/hal+json varijanti.
Zbog Open content principa, opisan u Uvodu,
ne koristi se formalni opis reprezentacije kao što je XML Schema u verziji v1 ISVU REST API-ja.
Postoje resursi kojima je podržani format XML, primjerice zavrsetakstudija_zavrsetakstudija_diploma.
Takvi resursi imaju minimalno dvije reprezentacije, jednu specifičnu za taj resurs, kao npr. application/vnd.isvu.svjedodzbadiploma.xml-v1.1+xml,
i drugu, generičku, reprezentaciju application/xml.
Resurs može imati i više specifičnih reprezentacija. Svaka takva reprezentacija definira XML Schemu koja se koristi.
Pripadna XML Schema (ili više njih) biti će navedena na stranici dokumentacije za konkretni resurs, uz eventualni datum do kada je podržana, ako je podržano više specifičnih reprezentacija,
u skladu s Politikom ukidanja podrške pojedinog linka.
Preporuka je da klijentske aplikacije koriste konkretnu specifičnu reprezentaciju, jer na taj način ne bi imale problema kod dodavanja novih verzija reprezentacija pojedinog resursa.
Ukoliko postoji više specifičnih reprezentacija istog resursa kao npr.
application/vnd.isvu.svjedodzbadiploma.xml-v1.0+xml i
application/vnd.isvu.svjedodzbadiploma.xml-v1.1+xml, reprezentacija application/xml
će uvijek vraćati najnoviju verziju. Time se olakšava razvoj, testiranje i istraživanje.
Standardni korišteni linkovi, temeljeni na IANA Link Relations (http://www.iana.org/assignments/link-relations/link-relations.xhtml), su:
- self - neće se posebno navoditi kod svake pojedine reprezentacije resursa
- profile - neće se posebno navoditi kod svake pojedine reprezentacije resursa
- post - navoditi će se kod svake pojedine reprezentacije resursa koja ga podržava (koristi se za HTTP metodu POST), uz njega će biti priložen i primjer uporabe.
- edit - navoditi će se kod svake pojedine reprezentacije resursa koja ga podržava uz popis podržanih HTTP metoda (koristi se za HTTP metode PUT i DELETE), uz njega će biti priložen i primjer uporabe.
Ukoliko nije drugačije navedeno, linkovi podržavaju GET HTTP metodu i to se neće posebno navoditi uz svaki link.
Dio izloženih linkova, u skladu s HAL-om, definirani su sintaksom opisanom s URI Template standardom
(https://tools.ietf.org/html/rfc6570). U takvom linku postoji barem
jedan parametar koji je označen znakovima "{...}
". Tako bi na primjeru linka
"/api/vu/{sifraVisokogUcilista}/student/jmbag/{jmbag}"
parametar "{sifraVisokogUcilista}
"" označavao poziciju na koju treba dodati šifru visokog učilišta u ISVU, a
oznaka "{jmbag}
" poziciju na koju treba dodati JMBAG studenta za koga se traže podaci.
Ovaj link je samo primjer i trenutno nije implementiran.
Primjeri takvih linkova u ISVU REST API-ju:
- zavrsetakstudija_zavrsetakstudija_diploma
- zavrsetakstudija_zavrsetakstudija_dopunskaisprava
Generiranje zahtjeva može se obaviti putem REST API klijenta.
Preporučamo korištenje klijenta Talend API Tester koji se može dodati kao aplikacija unutar internet preglednika Google Chrome.
Početni link za korištenje ove verzije ISVU REST API-ja isti je kao i prije (https://www.isvu.hr/api/),
a obavezno je za traženu reprezentaciju resursa (Accept
) navesti application/hal+json.
Također, potrebna je i autorizacija pa u zaglavlje (Headers
) treba dodati i korištenje autorizacije (Authorization
) i
to Basic Authorization
te upisati podatke za prijavu Vašeg informacijskog sustava na ISVU REST API.
Na slici možete vidjeti primjer GET zahtjeva i odgovora.
Pomoću ovog klijenta može se dalje nastaviti pratiti dostupne linkove tako da kliknete na željeni link te pošaljete novi zahtjev klikom na gumb Send.
Kod POST metode odgovor će uvijek sadržavati HTTP Header Location s URL-om na kojem je dostupan novo stvoreni resurs, a HTTP Status Code odgovora će biti 201 Created.
Kod PUT metode se ne koristi HTTP Header Location u odgovoru jer se mijenja resurs na URL-u na koji je i poslan zahjev.
DELETE metodom se briše resurs na zadanom URL-u. U zahtjevu nije potrebno postavljati dodatne HTTP Header-e.
Eksperimentalno smo pokrenuli HAL pretraživač (browser).
HAL pretraživač je API klijent za hal+json reprezentaciju resursa.
Dostupan je na stranici: https://www.isvu.hr/api/hal-browser/browser.html
Potrebno je unesti URL resursa i Custom Request Header.
Custom Request Header se npr. može dobiti tako da se u Talend-u upišu podaci za prijavu Vašeg informacijskog sustava (Authorization
) i navede da je tražena
reprezentacija resursa hal+json (application/hal+json). Zatim umjesto "form" odabrati prikaz "raw" i
kopirati sve u Custom Request Header u HAL pretraživaču.
Primjer podatka koji je potrebno kopirati u Custom Request Header:
Authorization: Basic fgTzMyEtR6kjZgH9dTExjF4vrNlig0p=
Content-Type: application/hal+json
ISVU REST API je dizajniran i implementiran na način da podržava istovremeno više linkova vezanih za isti resurs.
Obzirom da se API temelji na Open content principu, opisanog u Uvodu, ne očekujemo da će se biti česte
potrebe za uvođenjem novih linkova za isti resurs. Na taj način je osigurano da uvođenje novog linka ne narušava
kompatibilnost s postojećim informacijskim sustavima.
Trajna podrška više linkova za jedan resurs nije održiva stoga je uvedena politika ukidanja
podrške za pojedini link. Politika je da se podrška za pojedini link
ukine 12 mjeseci nakon što se link označi "zastarjelim". Uz "zastarjele" linkove biti će crvenom bojom naveden datum kada će biti ukinuti, npr. (podržan do: 1. prosinca 2017.).
Odabirom pojedinog linka otvara se dokumentacija za taj link.
Uz svaki novi link je zelenom bojom naveden mjesec uvođenja, npr. (siječanj 2016.).
-
Nastavni program
- nastavniprogram
- nastavniprogram_nastavniprogramuakademskimgodinama
- nastavniprogram_predavanjeizbornihpredmeta
- nastavniprogram_predmeti
- nastavniprogram_studiji
- nastavniprogram_obrazovniprogrami
- nastavniprogram_strukturastudija
- nastavniprogram_ess
- nastavniprogram_studij_centrivisokogucilista
- nastavniprogram_studijzaess
- nastavniprogram_korijenzaess
- nastavniprogram_ess_predmeti
- nastavniprogram_ess_obaveznipredmeti
- nastavniprogram_ess_izbornipredmeti
- nastavniprogram_ess_grupaizbornihpredmeta
- nastavniprogram_ess_grupeizbornihpredmeta
- nastavniprogram_ess_grupeizbornihpredmeta_izbornipredmeti
- nastavniprogram_parametristudijauakademskojgodini
- nastavniprogram_predmet
- nastavniprogram_predmet_preduvjeti
- nastavniprogram_predmet_ekvivalenti
- nastavniprogram_predmetuakademskojgodini
- nastavniprogram_predmetuakademskojgodini_opisi
- nastavniprogram_predmetuakademskojgodini_literature
- nastavniprogram_predmetuakademskojgodini_jezici
- nastavniprogram_predmetuakademskojgodini_ishodiucenja
- nastavniprogram_predmetuakademskojgodini_izvodjac
- nastavniprogram_predmetuakademskojgodini_izvodjac_grupe
- nastavniprogram_izvodjaci
- nastavniprogram_izvodjac_predmeti
- nastavniprogram_izvodjacuakademskimgodinama
- nastavniprogram_izmijenjeninastavniprogram
- nastavniprogram_izmijenjeninastavniprogram_dan_1
- nastavniprogram_izmijenjeninastavniprogram_dan_7
- nastavniprogram_izmijenjeninastavniprogram_dan_30
- nastavniprogram_ishodiucenjastudprog
- nastavniprogram_ishodiucenjastudprogakgod
-
Nastavni plan
- nastavniplan
- nastavniplan_nastavniplanzaakademskegodine
- nastavniplan_nastavniplanzaakademskugodinu
- nastavniplan_nastavniplanzaakademskugodinu_odrzanenastave
- nastavniplan_nastavniplanzaakademskugodinu_odrzananastava
- nastavniplan_nastavniplanzaakademskugodinu_odrzananastava_izvodjaci
- nastavniplan_nastavniplanzaakademskugodinu_odrzananastava_ishodiucenja
- nastavniplan_nastavniplanzaakademskugodinu_odrzananastava_grupezanastavu
- nastavniplan_nastavniplanzaakademskugodinu_odrzananastava_studenti
- nastavniplan_nastavniplanzaakademskugodinu_odrzananastava_predmeti
- nastavniplan_nastavniplanzaakademskugodinu_predmeti
- nastavniplan_nastavniplanzaakademskugodinu_predmeti_grupezanastavu
- nastavniplan_nastavniplanzaakademskugodinu_predmeti_grupezanastavu_grupazanastavu
- nastavniplan_nastavniplanzaakademskugodinu_predmeti_ispitnirokovi
- nastavniplan_nastavniplanzaakademskugodinu_predmeti_ispitnirok
- nastavniplan_nastavniplanzaakademskugodinu_predmeti_tjedniplannastave
- nastavniplan_nastavniplanzaakademskugodinu_predmeti_upisanistudenti
- nastavniplan_dozvole_dozvoledjelatnicimazapredmet
- nastavniplan_dozvole_dozvoledjelatnikunadpredmetima
- nastavniplan_dvorane
- nastavniplan_dvorana
- nastavniplan_izmijenjenigrupazanastavu
- nastavniplan_izmijenjenigrupazanastavu_dan_1
- nastavniplan_izmijenjenigrupazanastavu_dan_7
- nastavniplan_izmijenjenigrupazanastavu_dan_30
- nastavniplan_izmijenjeniispitnirok
- nastavniplan_izmijenjeniispitnirok_dan_1
- nastavniplan_izmijenjeniispitnirok_dan_7
- nastavniplan_izmijenjeniispitnirok_dan_30
-
Student
- student
- student_student-v2
- student_student-v2_oib
- student_student-v2_uid
- student_student_slika
- student_student_studentovstudij
- student_student_prelazakstudentanavu
- student_student_sumarnipodaci
- student_studentuakademskojgodini
- student_studentuakademskojgodini_studenti
- student_zabranastudentu_studenti
- student_zabranastudentu_student
- student_zabranaupisagodine_studenti
- student_zabranaupisagodine_student
- student_ispisanistudentiukalendarskojgodini (siječanj 2022.)
- student_ispisanistudentiukalendarskojgodini_studenti (siječanj 2022.)
- student_izmijenjenistudent
- student_izmijenjenistudent_dan_1
- student_izmijenjenistudent_dan_7
- student_izmijenjenistudent_dan_30
-
Upis godine
- upisgodine
- upisgodine_upisgodineuakademskojgodini
- upisgodine_upisgodineuakademskojgodini_studenti
- upisgodine_student_upisanegodine
- upisgodine_student_upisgodine
- upisgodine_student_upisgodine_predmet
- upisgodine_student_upisgodine_predmet_izbornagrupa
- upisgodine_student_prekidi
- upisgodine_student_prekidi_prekid
- upisgodine_skolarine_student
- upisgodine_skolarina_student
- upisgodine_skolarina_student_transakcija
- upisgodine_skolarina_student_stornotransakcije
- upisgodine_skolarina_student_rjesenjaopromjeniskolarine
- upisgodine_skolarina_student_rjesenjeopromjeniskolarine
- upisgodine_studentuakademskojgodini
- upisgodine_studentuakademskojgodini_kategorijastudenta
- upisgodine_rezultatidrzavnematureuakademskojgodini
- upisgodine_rezultatirazredbenogpostupkauakademskojgodini
- upisgodine_naknadnoevidentiranjeocjena
- upisgodine_naknadnoevidentiranjeocjena_student
- upisgodine_priznavanjeispita
- upisgodine_priznavanjeispita_student
- upisgodine_studentskidomoviuakademskojgodini
- upisgodine_studentskidomstudenta
- upisgodine_aktivnoststudentaprijeupisanastudij
- upisgodine_aktivnoststudentaprijeupisanastudij_student
- upisgodine_priznavanjeectsbodovaipredmeta
- upisgodine_priznavanjeectsbodovaipredmeta_student
- upisgodine_boravakstudenataizvanmaticnogvu
- upisgodine_boravakstudenataizvanmaticnogvu_boravak
- upisgodine_izmijenjeniupisgodine
- upisgodine_izmijenjeniupisgodine_dan_1
- upisgodine_izmijenjeniupisgodine_dan_7
- upisgodine_izmijenjeniupisgodine_dan_30
- upisgodine_izmijenjenistudentuakademskojgodini
- upisgodine_izmijenjenistudentuakademskojgodini_dan_1
- upisgodine_izmijenjenistudentuakademskojgodini_dan_7
- upisgodine_izmijenjenistudentuakademskojgodini_dan_30
-
Ispit
- ispit
- ispit_izmijenjeniispit
- ispit_izmijenjeniispit_dan_1
- ispit_izmijenjeniispit_dan_7
- ispit_izmijenjeniispit_dan_30
- ispit_prijave
- ispit_prijava
- ispit_prijavezastudentazapredmet
- ispit_rezultatiusmenog
- ispit_rezultatusmenog
- ispit_rezultatipismenog
- ispit_rezultatpismenog
- ispit_studentibezpravanapotpisuakademskimgodinama
- ispit_studentibezpravanapotpisuakademskojgodini
- ispit_studentibezpravanapotpisusemestru
- ispit_studentibezpravanapotpiszapredmet
- ispit_studentibezpravanapotpis
- ispit_studentbezpravanapotpis
- ispit_ocjena_ects
-
Osoba
- osoba
- osoba_osobe
- osoba_osobnipodaci
- osoba_osobnipodaci_uid
- osoba_osobnipodaci_oib
- osoba_mobilnost
- osoba_akademskistupanj
- osoba_strucnasprema
- osoba_strucninaziv
- osoba_statuszaposlenja
- osoba_zvanje
- osoba_zvanje_zatvaranjeotvaranje
- osoba_izmijenjeniosoba
- osoba_izmijenjeniosoba_dan_1
- osoba_izmijenjeniosoba_dan_7
- osoba_izmijenjeniosoba_dan_30
-
Ustanova
- ustanova-v2
- ustanova_ustanova
- ustanova_ustrojstvenajedinica
- ustanova_centrivisokogucilista
- ustanova_ustrojstvenejedinice
- ustanova_vrstazabranenavu
- ustanova_ogranicenja_dnevno
-
Novosti
- novosti
- novosti_novostiukalendarskimgodinama
- novosti_novostiukalendarskojgodini
-
Poslijediplomski studiji
- pds_student_aktivnosti
- pds_student_aktivnost
- pds_student_zavrsniradovi
- pds_student_zavrsnirad
- pds_student_teme
- pds_student_tema
- pds_zavrsetakstudija_radnotijelo
-
Završetak studija
- zavrsetakstudija
- zavrsetakstudija_temauakademskimgodinama
- zavrsetakstudija_temamentoruakademskimgodinama
- zavrsetakstudija_temauakademskojgodinizamentora
- zavrsetakstudija_tema
- zavrsetakstudija_tema_studenti
- zavrsetakstudija_zadatakpostudijima
- zavrsetakstudija_zadatakrokzaradzastudij
- zavrsetakstudija_zadatakrokzarad
- zavrsetakstudija_zadatakrokzaradstudenti
- zavrsetakstudija_student_zadaci
- zavrsetakstudija_zadatak
- zavrsetakstudija_rjesenjeoslobdiplpostudijima
- zavrsetakstudija_rjesenjeoslobdiplzastudij
- zavrsetakstudija_rjesenjeoslobdipl
- zavrsetakstudija_zavrsetakstudijauakademskimgodinama
- zavrsetakstudija_zavrsetakstudijauakademskojgodini
- zavrsetakstudija_zavrsetakstudija
- zavrsetakstudija_zavrsetakstudija_diploma
- zavrsetakstudija_zavrsetakstudija_diplomazadatum
- zavrsetakstudija_zavrsetakstudija_dopunskaisprava
- zavrsetakstudija_zavrsetakstudija_dopunskaispravazadatum
- zavrsetakstudija_zavrsetakstudija_dopunskaispravadefault
- zavrsetakstudija_zavrsetakstudija_dopunskaispravazadatumdefault
- zavrsetakstudija_izbormentorauakademskimgodinama
- zavrsetakstudija_izbormentorastudijuakademskojgodini
- zavrsetakstudija_izbormentorauakademskojgodinizastudij
- zavrsetakstudija_izbormentora
- zavrsetakstudija_izborpredmetauakademskimgodinama
- zavrsetakstudija_izborpredmetastudijuakademskojgodini
- zavrsetakstudija_izborpredmetauakademskojgodinizastudij
- zavrsetakstudija_izborpredmeta
- zavrsetakstudija_izbortemeuakademskimgodinama
- zavrsetakstudija_izbortemestudijuakademskojgodini
- zavrsetakstudija_izbortemeuakademskojgodinizastudij
- zavrsetakstudija_izborteme
- zavrsetakstudija_mentor_studenti
- zavrsetakstudija_izmijenjenizavrsetakstudija
- zavrsetakstudija_izmijenjenizavrsetakstudija_dan_1
- zavrsetakstudija_izmijenjenizavrsetakstudija_dan_7
- zavrsetakstudija_izmijenjenizavrsetakstudija_dan_30
- zavrsetakstudija_dodatnipodacidopunska
- zavrsetakstudija_dodatnipodacidopunskadatum
-
Mreža sveučilišta (lipanj 2023.)
- mrezasveucilista
- mrezasveucilista_mreze
- mrezasveucilista_mreza
- mrezasveucilista_mreza_ponudapredmeta
- mrezasveucilista_student
- mrezasveucilista_student_predmet
- mrezasveucilista_student_predmet_ispit
-
Informacijski sustav
- informacijskisustav
- informacijskisustav_dozvole
- informacijskisustav_kljucnerijeci
- informacijskisustav_preporuke
- informacijskisustav_dostupnozaustanove
-
Višeinstitucijski informacijski sustavi
- informacijskisustav_viseinstitucijski_student_jmbag
- informacijskisustav_viseinstitucijski_student_oib
- informacijskisustav_viseinstitucijski_student_uid
- informacijskisustav_viseinstitucijski_osoba_oznaka
- informacijskisustav_viseinstitucijski_osoba_uid
- informacijskisustav_viseinstitucijski_osoba_oib
-
Katalog
- katalog
- katalog_nastavniprogram_nacinizvedbestudija
- katalog_nastavniprogram_razinastudija
- katalog_nastavniprogram_tipelementastrukturestudija
- katalog_nastavniprogram_vrstanastavenavu
- katalog_nastavniprogram_vrstanastave
- katalog_nastavniprogram_vrstapravilaizbornegrupe
- katalog_nastavniprogram_tipindeksa
- katalog_nastavniprogram_znanstvenopodrucje
- katalog_nastavniplan_vrstaroka
- katalog_nastavniplan_odrzananastava_kategorijanastave
- katalog_nastavniplan_tipdvorana
- katalog_osoba_akademskistupanj
- katalog_osoba_statuszaposlenja
- katalog_osoba_strucninaziv
- katalog_osoba_zvanje
- katalog_osoba_duznost
- katalog_osoba_vrstaulogeosobe
- katalog_ustanova_vrstaustrojstvenejedinice
- katalog_student_vrstazabrane
- katalog_student_razinapravanaprehranu
- katalog_student_razlogprestankaprava
- katalog_student_razlogzabrane
- katalog_student_vrstaposebnogstatusa
- katalog_upisgodine_razlogprekidastudija
- katalog_upisgodine_razlogpromjeneskolarine
- katalog_upisgodine_razlogneracunanjaponavljanja
- katalog_upisgodine_temeljfinanciranja
- katalog_upisgodine_statusupisanogpredmeta
- katalog_upisgodine_indikatorupisa
- katalog_upisgodine_nacinevidencijeupisnoglista
- katalog_upisgodine_nacinunosapredmeta
- katalog_upisgodine_nacinupisapredmeta
- katalog_upisgodine_nacinplacanja
- katalog_upisgodine_polozajuzanimanju
- katalog_upisgodine_postignutoobrazovanje
- katalog_upisgodine_uzdrzavatelj
- katalog_upisgodine_zanimanje
- katalog_upisgodine_zdravstvenoosiguranje
- katalog_upisgodine_statusstanovanja
- katalog_pds_kategorijaobveze
- katalog_pds_vrstazavrsetkastudija
- katalog_pds_vrstazavrsnograda
- katalog_anketa_objektprocjeneankete
- katalog_anketa_tipelementizvjestajaankete
- katalog_zavrsetakstudija_vrstateme
- katalog_zavrsetakstudija_vrstadanazarad
- katalog_zavrsetakstudija_pohvala
- katalog_zavrsetakstudija_vrstadokumenta
- katalog_strucnasprema
- katalog_jezik
- katalog_jezici
- katalog_skole
- katalog_skola
- katalog_nacionalnost
- katalog_strukovnopodrucje
- katalog_programizobrazbe
- katalog_programmobilnosti
- katalog_razlogdirektnogupisa
- katalog_vrstaliste
- katalog_ustrojstvenejedinice
- katalog_ustrojstvenajedinica
- katalog_mjesto
- katalog_drzava
- katalog_iscedpolje (lipanj 2023.)