Professional Documents
Culture Documents
SDGE Rest Specifikacija v1.2
SDGE Rest Specifikacija v1.2
Ver. 1.2
Sadržaj
1 Uvod ......................................................................................................................................... 1
2 Kreiranje servisnog djelatnika .................................................................................................. 2
3 Popis REST servisa .................................................................................................................. 3
3.1 Dohvat autentifikacijskog tokena............................................................................. 3
3.2 Kontrola kvalitete ..................................................................................................... 3
3.3 Konverzija GML-a u DXF ....................................................................................... 5
3.4 Dohvat upisnika ....................................................................................................... 5
3.5 Kreiranje predmeta ................................................................................................... 6
3.6 Dohvat predmeta .................................................................................................... 10
3.6.1 Kompleksni tip predmeta............................................................................. 11
3.7 Kreiranje elaborata ................................................................................................. 11
3.8 Dohvat elaborata .................................................................................................... 12
3.8.1 Kompleksni tip elaborata ............................................................................. 13
3.8.2 Kompleksni tip svrha ................................................................................... 14
3.9 Evidencija zahtjeva za izdavanje podataka ............................................................ 14
3.10 Popis zahtjeva za izdavanje podataka u elaborate ................................................. 15
3.10.1 Kompleksni tip zahtjeva .............................................................................. 15
3.11 Uvoz GML-a .......................................................................................................... 16
3.12 Dohvat KT prijavnih listova .................................................................................. 17
3.12.1 Kompleksni tip KT prijavni list ................................................................... 17
3.13 Uvoz DXF datoteka ............................................................................................... 18
3.14 Dohvat RPJ naselja ................................................................................................ 18
3.15 Dohvat RPJ ulica .................................................................................................... 19
3.16 Dohvat RPJ katastarskih općina ............................................................................. 20
3.17 Auto-login .............................................................................................................. 20
4 Šifarnici .................................................................................................................................. 22
4.1 Status kontrole........................................................................................................ 22
4.2 Vrsta posla.............................................................................................................. 22
4.3 Metoda izrade ......................................................................................................... 22
4.4 Oznaka uklopa (Grafički dio) ................................................................................ 22
4.5 Pravila kontrole (van PNP) .................................................................................... 22
4.6 Vrsta plana (van PNP)............................................................................................ 23
4.7 Stanje podataka ...................................................................................................... 23
4.8 Vrsta stranke .......................................................................................................... 23
4.9 Potreba elaborata .................................................................................................... 23
4.10 Postupak održavanja DKP ..................................................................................... 23
4.11 Koordinatni sustav ................................................................................................. 23
4.12 ZK stanje ................................................................................................................ 24
4.13 Oznaka ovjere ........................................................................................................ 24
4.14 Oznaka provedbe.................................................................................................... 24
4.15 Status zahtjeva........................................................................................................ 24
4.16 Status promjene prijavnog lista .............................................................................. 24
4.17 ApiStatus ................................................................................................................ 24
4.18 Status GML uvoza ................................................................................................. 25
5 Servisi za šifarnike ................................................................................................................. 26
5.1 Dohvat šifarnika Djelatnost ................................................................................... 26
5.2 Dohvat šifarnika Posao .......................................................................................... 26
5.3 Dohvat šifarnika Svrha elaborata ........................................................................... 27
6 Vanjski šifarnici ..................................................................................................................... 28
1 Uvod
REST API modul je sučelje preko kojeg ostali sustavi treće strane mogu upotrebljavati SDGE
funkcionalnosti. Putem poziva raznih metoda koje su izložene za pozive, vanjski sustavi mogu
voditi dio procesa izrade DGE unutar SDGE-a. Uz standardne korake izrade elaborata mogu se
izvršavati i popratni procesi kao kontrola kvalitete DKP-a i konverzija GML-a razmjenskog
formata u DXF format.
SDGE REST API je javno objavljen preko interneta, a pristupiti mu mogu vanjski sustavi koji će
se predstavljati servisnim računima korisnika SDGE-a. Drugim riječima svaki korisnik koji preko
vanjskog sustava radi sa SDGE-om mora imat svoj SDGE korisnički račun i njemu pridružen
'servisni korisnički račun'. Na taj način se osigurava da se cjelokupni rad korisnika putem REST
API-a može odmah po izvršavanju transakcije vidjeti u SDGE web aplikaciji i vezan je na
korisnika koji je odradio proces putem servisa. Servisni korisnički račun također služi kao dodatni
sigurnosni mehanizam da korisnici ne upisuju svoje pristupne podatke za SDGE u druge sustave.
Na temelju podataka vezanih na servisni korisnički račun (servisni ključ i lozinka) generira se
token s vremenskim trajanjem koji se dalje šalje kao parametar zaglavlja HTTP poruke. Token se
generira preko REST API osnovne autentikacije (eng. Basic authetication) gdje se servisno
korisničko ime i lozinka šalju kodirani kao base64 znakovni niz. Cijeli proces razmjene poruka
ide preko HTTPS protokola kako bi se osigurala enkripcija cijele poruke. Kako je omogućena
prijava u aplikaciju preko tako dobivenog tokena, ograničeno je vrijeme trajanja samog tokena.
Predviđeno trajanje vremenskog tokena za produkcijsko okruženje je nekoliko minuta. Nakon
isteka korisnik, tj. drugi sustav mora dohvatiti novi token prije korištenja sljedećeg REST servisa.
1
2 Kreiranje servisnog djelatnika
Klikom na logiranog korisnika dolazi se do sučelja gdje se upisuju podaci za servisni pristup.
Korisnik generira jedinstveni ključ i upisuje proizvoljnu lozinku (može biti jednaka kao i ona za
login u sustav).
Nakon što korisnik upiše podatke potrebno je upisati podatke i u sustav koji poziva Rest API
SDGE-a.
Prilikom pozivanja Rest API-a korisnik prvo poziva servis za dohvat tokena s vremenskim
trajanjem koji se kasnije šalje u header-u http zahtjeva.
Prilikom korištenja SDGE rest servisa potrebno je u prvom koraku pozvati autentifikacijski servis
s točnim autentifikacijskim tokenom i servisnom lozinkom koji će generirati autentifikacijski
token s vremenskim rokom trajanja.
2
3 Popis REST servisa
Url: /authentication/createToken
Metoda: Post
3
Parametar zaglavlja Vrijednost
Authorization Token
Content-Type application/json
*
Datoteke se razmijenjuju u .zip formatu
4
3.3 Konverzija GML-a u DXF
url: /konverzija
Metoda: Post
Primjer:
{
"svrha": "Test",
"primjedba": "Test",
"datoteka": "Base64 zip OSS izvoza"
}
Url: /upisnik/getPopisUpisnika
Metoda: Post
Primjer:
{
"godina": 2018
}
5
Parametar Tip Obavezno Vrsta
godina INTEGER DA IN
upisnikId INTEGER DA OUT
apiStatus INTEGER DA OUT
Url: /upisnik/savePredmet
Metoda: Post
Primjer:
{
"upisnikId": 179,
"rbrPredmeta": null,
"datumOsnivanjaPredmeta": "2018-03-16",
"djelatnostId": 25,
"posaoId": 47,
"nazivPredmeta": "asd",
"datumUgovaranjaPosla": "2018-03-15",
"ugovorenaCijena": 300.50,
"katastarskaOpcinaMbr": 301019,
"naseljeMbr": 11584,
"lokacija": "ASD",
"brojPlana": "123",
"oznakaOvjere": 0,
"oznakaProvedbe": 0,
"primjedba": "123",
"vrstaStranke": 0,
"oibStranke": null,
"imeStranke": "Pero",
"prezimeStranke": "Perić",
"nazivStranke": null,
"naseljeStrankeMbr": "027898",
"naseljeStrankeNaziv": null,
"ulicaStrankeRbr": "58",
"ulicaStrankeNaziv": null,
"kucniBrojStranke": "10",
"kucniPodbrojNStranke": null,
"kucniPodbrojAStranke": null,
"isoKodDrzaveStranke": null,
"brojPosteStranke": "51215",
"nazivPosteStranke": "Kastav",
"kontaktPodaciStranke": null,
6
"vrstaNarucitelja": 0,
"oibNarucitelja": null,
"imeNarucitelja": "Pero",
"prezimeNarucitelja": "Perić",
"nazivNarucitelja": null,
"naseljeNaruciteljaMbr": "027898",
"naseljeNaruciteljaNaziv": null,
"ulicaNaruciteljaRbr": "58",
"ulicaNaruciteljaNaziv": null,
"kucniBrojNarucitelja": "10",
"kucniPodbrojNNarucitelja": null,
"kucniPodbrojANarucitelja": null,
"isoKodDrzaveNarucitelja": null,
"brojPosteNarucitelja": "51215",
"nazivPosteNarucitelja": "Kastav",
"kontaktPodaciNarucitelja": null,
"vrstaInvestitora": 0,
"oibInvestitora": null,
"imeInvestitora": "Pero",
"prezimeInvestitora": "Perić",
"nazivInvestitora": null,
"naseljeInvestitoraMbr": "027898",
"naseljeInvestitoraNaziv": null,
"ulicaInvestitoraRbr": "58",
"ulicaInvestitoraNaziv": null,
"kucniBrojInvestitora": "10",
"kucniPodbrojNInvestitora": null,
"kucniPodbrojAInvestitora": null,
"isoKodDrzaveInvestitora": null,
"brojPosteInvestitora": "51215",
"nazivPosteInvestitora": "Kastav",
"kontaktPodaciInvestitora": null,
"ktCestice": [],
"zkCestice": [],
"glavnaKnjigaId": 265120017
}
7
rbrPredmeta INTEGER NE IN
datumOsnivanjaPredmeta DATE DA IN
djelatnostId INTEGER DA IN
posaoId INTEGER DA IN
nazivPredmeta STRING NE IN
datumUgovaranjaPosla DATE DA IN
ugovorenaCijena FLOAT NE IN
katastarskaOpcinaMbr INTEGER DA IN
naseljeMbr INTEGER DA IN
lokacija STRING NE IN
brojPlana STRING NE IN
oznakaOvjere INTEGER DA IN
oznakaProvedbe INTEGER DA IN
primjedba STRING NE IN
vrstaStranke* INTEGER DA IN
oibStranke** STRING NE IN
imeStranke* STRING NE IN
prezimeStranke* STRING NE IN
nazivStranke* STRING NE IN
naseljeStrankeMbr** INTGER NE IN
naseljeStrankeNaziv** STRING NE IN
ulicaStrankeRbr** INTEGER NE IN
ulicaStrankeNaziv** STRING NE IN
kucniBrojStranke INTEGER DA IN
kucniPodbrojNStranke INTEGER NE IN
kucniPodbrojAStranke STRING NE IN
isoKodDrzaveStranke** STRING NE IN
brojPosteStranke STRING DA IN
nazivPosteStranke STRING DA IN
kontaktPodaciStranke STRING NE IN
8
vrstaNarucitelja* INTEGER DA IN
oibNarucitelja** STRING NE IN
imeNarucitelja* STRING NE IN
prezimeNarucitelja* STRING NE IN
nazivNarucitelja* STRING NE IN
naseljeNaruciteljaMbr** INTGER NE IN
naseljeNaruciteljaNaziv** STRING NE IN
ulicaNaruciteljaRbr** INTEGER NE IN
ulicaNaruciteljaNaziv** STRING NE IN
kucniBrojNarucitelja INTEGER DA IN
kucniPodbrojNNarucitelja INTEGER NE IN
kucniPodbrojANarucitelja STRING NE IN
isoKodDrzaveNarucitelja** STRING NE IN
brojPosteNarucitelja STRING DA IN
nazivPosteNarucitelja STRING DA IN
kontaktPodaciNarucitelja STRING NE IN
vrstaInvestitora* INTEGER DA IN
oibInvestitora** STRING NE IN
imeInvestitora* STRING NE IN
prezimeInvestitora* STRING NE IN
nazivInvestitora* STRING NE IN
naseljeInvestitoraMbr** INTGER NE IN
naseljeInvestitoraNaziv** STRING NE IN
ulicaInvestitoraNaziv** INTEGER NE IN
ulicaNaruciteljaNaziv** STRING NE IN
kucniBrojInvestitora INTEGER DA IN
kucniPodbrojNInvestitora INTEGER NE IN
kucniPodbrojAInvestitora STRING NE IN
isoKodDrzaveInvestitora** STRING NE IN
brojPosteInvestitora STRING DA IN
9
nazivPosteInvestitora STRING DA IN
kontaktPodaciInvestitora STRING NE IN
ktCestice STRING NE IN
ARRAY
glavnaKnjigaId INTEGER NE IN
zkCestice STRING NE IN
ARRAY
predmetId INTEGER DA OUT
apiStatus INTEGER DA OUT
Napomena:
* U slučaju pravne osobe obavezno je poslati parametar naziv, inače je obavezno ime i prezime
** Za RH stranke se šalje OIB, mbr naselja i rbr ulice, za inozemne stranke se šalje naziv
naselja, naziv ulice i službeni ISO kod države
Url: /upisnik/getPredmeti
Metoda: Post
Primjer:
{
"upisnikId": 179,
"nazivPredmeta": null,
"rbrPredmeta": null,
"mbrKatastarskeOpcine": 301019
}
Parametar zaglavlja Vrijednost
Authorization Token
Content-Type application/json
10
apiStatus INTEGER DA OUT
Url: /elaborat/saveElaborat
Metoda: Post
Primjer:
{
"predmetId": 116041,
"brojElaborata": "1",
"potrebaElaborata": 1,
"svrhaElaborataId": 14,
"metodaIzrade": 1,
"postupakOdrzavanjaDkp": 1,
"koordinatniSustav": 1,
"zkStanje": 0
}
11
Parametar Tip Obavezno Vrsta
predmetId INTEGER DA IN
brojElaborata INTEGER DA IN
potrebaElaborata INTEGER DA IN
svrhaElaborataId INTEGER DA IN
opisSvrhe STRING NE IN
nazivElaborata STRING NE IN
opisAkta STRING NE IN
zahvatUProstoru STRING NE IN
cestaNaziv STRING NE (samo za svrhu IN
24)
cestaBrCestice STRING NE (samo za svrhu IN
24)
metodaIzrade INTEGER DA IN
postupakOdrzavanjaDKP INTEGER DA IN
koordinatniSustav INTEGER DA IN
zkStanje INTEGER DA IN
primjedba STRING NE IN
projektantId** INTEGER NE IN
glavniProjektant STRING NE IN
kontakt STRING NE IN
primjedbaProjektant STRING NE IN
brojPrimjeraka INTEGER NE IN
elaboratId INTEGER DA OUT
apiStatus INTEGER DA OUT
Url: /elaborat/getElaborati
Metoda: Post
12
Primjer:
{
"upisnikId": 179,
"predmetId": 711368,
"mbrKatastarskeOpcine": 324574,
"nazivElaborata": "Kastav"
}
13
opisAkta STRING NE
listaSvrha COMPLEX DA
statusElaborata INTEGER DA
Primjedba STRING NE
Url: /zahtjev/saveZahtjev
Metoda: Post
Primjer:
{
"elaboratId": 141450,
"datumZahtjeva": "2018-05-08",
"opisZahtjeva": "opis zahtjeva",
"statusZahtjeva": 0
}
14
statusZahtjeva INTEGER DA IN
zahtjevId INTEGER DA OUT
apiStatus INTEGER DA OUT
Url: /zahtjev/getZahtjevi
Metoda: Post
Primjer:
{
"elaboratId": 141450
}
15
3.11 Uvoz GML-a
Url: /elaborat/uvozGmlDatoteke
Metoda: Post
Primjer:
{
"zahtjevId": 157510,
"gmlDatoteka": "base64 zip datoteka",
"potvrdaDatoteka": "base 64 pdf datoteka"
}
Napomena: GmlDatoteka se šalje kao zip datoteka dobivena s OSS-a. Datoteka mora sadržavati
podatke za katastarsku općinu koja je upisana na predmet i elaborate. PotvrdaDatoteka je pdf
datoteka (ne šalje se u zipu).
Atribut status označva do koje razine je odrađen uvoz GML-a. Moguće je samo upisati GML u
uvozne tablice, a da upis u čestice elaborata nije izvršen zbog krivog statusa elaborata (odabrano
krivo ZK stanje).
Moguć je samo jedan uvoz za jedan zahtjev. Za naknadni uvoz na isti zahtjev potrebno je brisati
podatke.
16
3.12 Dohvat KT prijavnih listova
Url: /ktPrijavniList/getKtPrijavniListovi
Metoda: Post
Primjer:
{
"elaboratId": 141450
}
17
3.13 Uvoz DXF datoteka
Url: /elaborat/uvozDxfDatoteke
Metoda: Post
Primjer:
{
"ktPrijavniListId": 159320,
"vrstaUklopa": 0,
"datoteka": "base 64 zip koji sadrži dxf datoteku"
}
Url: /rpjPodaci/getRpjNaselje
Metoda: Post
Primjer:
{
"nazivNaselja": "bok",
"brojZapisa": 10,
"pomak": 0
}
18
Parametar Tip Obavezno Vrsta Ograničenje
nazivNaselja STRING DA IN Min 3 znaka
brojZapisa INTEGER DA IN Max 50 zapisa
pomak INTEGER DA IN
rpjNaselja COMPLEX DA OUT
ukupnoZapisa INTEGER DA OUT
apiStatus INTEGER DA OUT
Url: /rpjPodaci/getRpjUlica
Metoda: Post
Primjer:
{
"nazivUlice": "pan",
"mbrNaselja": "071951",
"brojZapisa": 10,
"pomak": 0
}
19
3.16 Dohvat RPJ katastarskih općina
Url: /rpjPodaci/getRpjKatOpcina
Metoda: Post
Primjer:
{
"nazivKatOpcine": "vuk",
"brojZapisa": 10,
"pomak": 0
}
3.17 Auto-login
Metoda: Get
Url: https://sdge-test.dgu.hr/autoLogin?token=123-123&path=app#!detalji-
elaborata/?elaboratId=123
20
ktPrijavniListId STRING NE IN
zkPrijavniListId STRING NE IN
21
4 Šifarnici
22
4.6 Vrsta plana (van PNP)
Opis Vrijednost
Nove izmjere 1
Stari planovi 2
23
4.12 ZK stanje
Opis Vrijednost
Nema ZK stanje 0
Isto KT i ZK stanje 1
Dvostruko KT i ZK stanje 2
4.17 ApiStatus
Opis Vrijednost
Greška u servisu 0
24
Metoda uspješno izvršena 1
25
5 Servisi za šifarnike
Url: /upisnik/getDjelatnosti
Metoda: Post
Url: /upisnik/getPoslovi
Metoda: Post
Primjer:
{
"djelatnostId": 25
}
26
5.3 Dohvat šifarnika Svrha elaborata
Url: /elaborat/getSvrheElaborata
Metoda: Post
27
6 Vanjski šifarnici
Šifarnici vanjskih izvora:
• RPJ – mogu se koristiti vrijednosti dobivene iz RPJ-a ili vrijednosti koje SDGE nudi za
pretragu objekata RPJ-a. SDGE ažurira interni šifarnik RPJ-a svaki dan za dan unatrag.
o Katastarske općine
o Naselja
o Ulice
• HP – šifarnici se preuzimaju sa stranica Hrvatske pošte (url:
https://www.posta.hr/preuzimanje-podataka-o-postanskim-uredima-6543/6543)
o Poštanski broj
o Naziv dostavnog područja
28