Angular forma za dohvaćanje informacija sa API-ja Sudskog registra

Prikaz podataka API-ja Sudskog registra – pravosudje.hr

OBAVIJEST! API Sudskog registra se od 1. travnja prebacuje na novu adresu. Više o tome u blog postu Dohvaćanje podataka s API-ja Sudskog registra data.gov.hr

U ovom ću blog postu pokazati kako napraviti upit na API Sudskog registra i dohvatiti informacije o poslovnom subjektu prema OIB-u/MBS-a. U dokumentaciji se može vidjeti koje je sve informacije i preko kojih ruta moguće napraviti, ali ja ću se zadržati na onoj po meni najzanimljivijoj subjekt_detalji_Get.

Projekt je dostupan na GitHubu.

Uvod

Za kreiranje forme koristiti ću FormBuilder, a mogao sam isto tako koristiti i ngModel ili FormControl. Više o tome objavio sam u jednom od prijašnjih blog postova. Forma će se sastojati od nekoliko polja od kojih će većina biti obavezna. Prilikom unosa OIB-a ili MBS-a odmah ide provjera na API Sudskog registra i tek nakon te provjere moguće je kliknuti na gumb “Spremi” nakon kojega se podaci mogu spremiti u bazu podataka.

Provjera rada API-ja

Prije nego krenem s izradom Angular forme idem se uvjeriti da API radi na način kako je prikazano u dokumentaciji i da mi vraća podatke koje želim koristiti. API je moguće testirati i na ovoj adresi. Da nema te forme koristio bi Postman.

URL na koji radim upit je:

Obavezni parametri upita su sljedeći:

  • tipIdentifikatora* (string) – moguće koristiti oib (osobni identifikacijski broj) ili mbs (matični broj subjekta)
  • identifikator* (integer) – oib ili mbs koristim u obliku broja (int64)
  • Ocp-Apim-Subscription-Key* (string) – ide u header, a dobije se nakon registracije

Kreiranje API servisa

U servisu će se nalaziti dvije funkcije. Jedna će dohvaćati podatke prema OIB-u, a druga prema MBS-a.

HTML forma

Kreiram formu sa poljima:
oib – dužina 11 znakova. Obavezno polje.
mbs – dužina 9 znakova. Obavezno polje.
nazivtvrtke – Obavezno polje.
ulica – Obavezno polje.
grad – Obavezno polje.
e-mail

Prilikom unosa OIB-a ili MBS-a odmah se vrši provjera na API putem funkcije provjera(angularForma). Tek nakon što se forma ispuni podacima tj. kada se zadovolji unos obaveznih polja moguće je kliknuti na gumb “Spremi”.

Funkcionalnost forme

Unutar ngOnInit() funkcije radim inicijalizaciju forme. Ovdje odmah dodajem i Validators kako bi mogao validirati potrebna polja i spriječiti klik na gumb “Spremi” pomoću [disabled]="!angularForma.valid" u slučaju kada forma nije ispravno ispunjena.

Kada se unutar polja forme unesu OIB ili MBS poziva se funkcija provjera(angularForma). Prvo vršim provjeru koja vrsta identifikatora (OIB ili MBS) je unesena jer ću kasnije na osnovu toga pozivati pripadajući API Sudskog registra iz ApiService i paralelno provjeravam da su ispravne dužine. Nakon toga provjeravam da unutar unesenih znakova nema slova tj. da su samo brojevi match(/^[0-9]+$/). Kada su svi navedeni uvjeti zadovoljeni pozivam this._apiService.sudskiRegistarOIB ili this._apiService.sudskiRegistarMBS te prikazujem dobivene podatke console.log(res) i odmah popunjavam formu.

Kada je forma ispravno validirana podaci će se uspješno dohvatiti.

Angular forma: Sudski Registar

Ne međutim, ostaje problem kod popunjavanja forme sa nasumičnim brojevima koji će ispravno biti validirani prema dužini iako ne postoje u Registru. Npr. netko za OIB može unijeti 11 nula ili za MBS 9 nula i forma će biti validna te će se taj poslovni subjekt moći spremiti u bazu podatka.

Angular forma

To mogu spriječiti koristeći setValue ili patchValue. Znači, ako mi API Sudskog registra ne vrati podatke neću dopustiti da forma prođe kao validna i da se uopće može kliknuti na “Spremi”.

this.angularForma.controls['oib'].setValue(null);
this.angularForma.controls['oib'].patchValue(null);

Angular - Sudski Registar

Što se adrese tiče stavio sam uvjet da se prikaže ispravna vrijednost neovisno o tome ima li prikazana adresa uz broj i podbroj tj. slovo (res.sjedista[0].kucni_podbroj ? (res.sjedista[0].kucni_podbroj) : '') .

Npr. u adresi Dragutina Žanića Karle 27a je ‘a’ podbroj .

Objavio

Tomislav Stanković

Bloger širokog raspona interesa od kojih dio voli objaviti na ovom blogu. U neslobodno vrijeme Angular developer mobilnih i web aplikacija.

14 misli o “Prikaz podataka API-ja Sudskog registra – pravosudje.hr”

  1. Mislim da bi šira javnost trebala razumijeti i “hidden” priču iza ove – Ministarstvo pravosuđa je otvorilo API Sudskog registra već odavno, samo se malo zna to tome. Odličan pristup i za pohvaliti – što mislite koliko bi nam bio jednostavniji život kada bi ovo bio programatski korak državne uprave koja podatke objavljuje na nekom Government Bus-u ili API Marketplaceu?

        1. Super. Pristup Poreznoj (EDIP – dohodak i primitak) je uspješno riješen. Pristup MUP-u (boravište i vlasništva vozila, također). Dugovanja tvrtki? Pristup registru udruga? ima toga još, ali apsolutno podržavam jedan JEDINSTVENI API prema državnim evidencijama, bio bi daleko jednostavniji. Samo naprijed…

  2. Ako sam sudski ne gonjen da li smijem radit u državnoj tvrtkci???

    Stavovi i mišljenja na ovom postu moji su osobni stavovi i ne odražavaju stavove mojih poslovnih partnera i tvrtki u kojima radim ili s kojima surađujem.

  3. Da, izgleda da je prije bilo jednsotavnije. Sad se zatraži “subscription” za API servis i onda to tako stoji danima – nikako da se odobri. Nema na stranici ni jedan kontakt/mail/telefon.

    “You have successfully submitted a subscription request to the Javni korisnici product. You will be notified when the request is approved”

Odgovori

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena sa * (obavezno)