Preskoči na vsebino

Začetek z API-jem

Uvod

Dobrodošli v mDocs+ API dokumentacijo! Ta odsek vas bo vodil skozi začetne korake, potrebne za uporabo našega API-ja.

Predpogoji

Preden začnete, poskrbite, da imate naslednje:

  • Aktiven račun: Če še niste, poskrbite, da je bil za vas ustvarjen račun.
  • API ključ: Vaš API ključ lahko najdete na profilu pod zavihkom API.

HTTP zaglavja (headers)

Izboljšajte svojo interakcijo z API-jem z uporabo posebnih funkcij, ki so na voljo na določenih končnih točkah. Do teh funkcij lahko dostopate z dodajanjem parametrov v zaglavje zahteve.

Zaglavja (Headers)

PoljeTipOpisPrivzeta vrednostObvezno
AuthorizationBearer TokenŽeton za avtentikacijo✔️
expandstringRazširjena polja
fieldsstringPolja, ki jih vrne zahtevek
hrefboolean(true|false) Vrne URL od posameznega dokumentafalse
dateFormatstringFormat datuma za časovna poljaphp:d.m.Y H:i:s
dateFieldsstringPolja, za katera se uporabi oblika datuma nastavljenega z dateFormat
ignoreMissingReferenceboolean(true|false) Uporabljeno pri referenčnem nastavljanju poljfalse
ignoreDuplicateReferenceboolean(true|false) Uporabljeno pri referenčnem nastavljanju poljtrue
fillPlaceholdersbooleanPri nalaganju .docx datotek, samodejno poizkusi izpolniti 'placeholder' polja.false
removeUnfiledPlaceholdersbooleanPri nalaganju .docx datotek, skrije vsa 'placeholder' polja, ki niso bila samodejno izpolnjena.false
Primer
{
"Authorization": "xfWuluzj...",
"expand": "documentType.*,createdBy.name",
"fields": "id,subject",
"href": "true",
"dateFormat": "php:d/m/Y",
"dateFields": "created_at,updated_at",
"ignoreMissingReference": "true",
"ignoreDuplicateReference": "false",
"fillPlaceholders": "false",
"removeUnfiledPlaceholders": "false"
}

Authorization

Zaglavje "Authorization" je ključna komponenta za varovanje dostopa do strežniških virov, saj služi kot ključ za overjanje uporabnikov ali aplikacij, ki pošiljajo zahteve. Mora biti vključeno v vsako API zahtevo, ker zagotavlja, da je dostop dovoljen le pooblaščenim osebam.

API_KEY ključ najdete na vašem profilu, pod zavihkom API.

Fields

Zaglavje "Fields" omogoča selektivno pridobivanje podatkov, ko v zaglavje navedete željena polja, strežnik vključi samo navedena polja. Funkcionalnost omogoča, da prejmete le informacije, ki jih potrebujete, kar optimizira prenos podatkov in poenostavi obdelavo odgovora.

Z navedbo id, created_at in created_by v parametru "fields", se zahteva prilagodi tako, da odgovori samo s temi bistvenimi informacijami.

{
"id": 5,
"created_at": "14.11.2025 10:11:31",
"created_by": 13
}

Expand

Zaglavje "Expand" je funkcionalnost, ki izboljša iskanje podatkov, saj omogoča vključitev podrobnih informacij iz povezanih polj (šifrantov).

Na primer, če podatkovna zbirka hrani referenco, kot je created_by ta običajno kaže na uporabnika (na njegov id). Sama referenca ne zagotavlja zadostnega konteksta. Z uporabo tega zaglavja lahko določite dodatne atribute, kot je npr. createdBy.id, createdBy.username in tako obogatite odgovor z bolj smiselnimi podatki.

Ta funkcija omogoča vključitev imena uporabnika neposredno v odgovor, kar omogoča jasnejše razumevanje izvora dokumenta.

{
"id": 5,
"created_at": "14.11.2025 10:11:31"
"createdBy": {
"id": 13,
"username": "superadmin"
}
}

Href

Zaglavje "Href" je funkcionalnost, ki v odgovor poda URL na dobljeni dokument.

DateFormat

Zaglavje "DateFormat" je funkcionalnost, ki vam omogoča formatiranje datumskih polj. Z določitvijo željene oblike v glavi zahteve lahko zagotovite, da se podatki o datumu in času vrnejo v strukturi, ki vam najbolj ustreza.

Formatiranje

Spodaj so specifikacije formatov, ki jih lahko uporabite z glavo DateFormat, vključno z opisi in primeri:

Privzeta vrednost
  • Vzorec formata: php:d.m.Y H:i:s
  • Opis: Privzeta vrednost, ki se uporabi v primeru, da dateFormat ni nastavljen.
  • Primer: 15.02.2024 12:11:31
ISO 8601 Date and Time
  • Vzorec formata: php:Y-m-d\TH:i:s\Z
  • Opis: Oblikuje datum in čas v skladu s standardom ISO 8601, ki se pogosto uporablja za internacionalizacijo.
  • Primer: 2024-02-15T12:11:31Z
Short Date
  • Vzorec formata: php:d/m/Y
  • Opis: Zagotavlja jedrnat prikaz datuma brez časa, kar je idealno za preproste prikaze datuma.
  • Primer: 15/02/2024
Long Date with Textual Month
  • Vzorec formata: php:d F Y
  • Opis: Prikaže datum s celotnim imenom meseca, kar omogoča bolj berljivo obliko za aplikacije, osredotočene na vsebino.
  • Primer: 15 February 2024
Full DateTime with Day Name
  • Vzorec formata: php:l, d F Y H:i:s
  • Opis: Vključuje celoten datum in uro z dnevom v tednu, kar zagotavlja izčrpne časovne informacije.
  • Primer: Friday, 15 February 2024 12:11:31

DateFields

Zaglavje "dateFields" je funkcionalnost, ki omogoča formatiranje samo določenih polj v formatu, ki je naveden v "dateFormat" zaglavju.

Query parametri

Nekatere GET zahteve omogočajo filtriranje podatkov z dodajanjem parametrov poizvedb na podlagi imen polj.

Če na primer kot parameter poizvedbe uporabite ?country=slovenia, bodo vrnjeni vsi uporabniki iz Slovenije. Lahko tudi povečate natančnost poizvedbe tako, da dodate več parametrov, vendar pa morate za pravilno dodajanje več filtrov namesto ponavljajočega ? uporabiti simbol &.

Na primer, ?country=slovenia&full_name=janez, bo vrnil uporabnike iz "Slovenije" in z imenom "janez".

Poleg filtriranja zahtevka po imenih polj, lahko tudi prilagodite paginacijo: Paginacija je privzeto nastavljena, da vrne prvih 20 rezultatov. Z parametrom page določite katero stran naj API vrne, parameter per-page pa določa koliko rezultatov se prikaže na posamezni strani

Primer: page=2&per-page=5 bo vrnil 5 rezultatov iz druge strani.

Šifranti

Mnogi zapisi imajo kot polje lahko shranjen šifrant iz drugega zapisa.

Polje ki predstavlja šifrant lahko prepoznamo po imenu, in sicer v veliki večini primerov se ime polja zaključi z _id, npr: document_type_id ali pa classification_code_id. Izjema sta polji created_by in updated_by.

Ker tovrstna polja hranijo le referenco (id) do drugega zapisa, si lahko pri pridobivanju podatkov pomagamo z zaglavjem Expand. Pri kreiranju/posodabljanju zapisa pa si lahko pomagamo z referenčnim nastavljanjem polj.

Referenčno nastavljanje polj

Pod referenčnimi polji so vedno shranjeni identifikatorji od povezanih zapisov, zato moramo pri delu s povezanimi polji vedno uporabljati identifikatorje.

Npr. pod povezano polje document_type_id želimo nastaviti sledeč šifrant:

// get document-type/

{
"id": 2,
"uuid": "6be1...V98",
"name": "Certifikat",
"description": "Certifikat xyz"
},

Če poznamo ID od šifranta ga seveda lahko nastavimo direktno, lahko pa ga nastavimo preko reference s sledečim formatom:

"$ref.[polje]": "[mdocs_model_class];[polje_za_iskanje];[iskan_niz]"

Podatke o [mdocs_model_class] lahko pridobimo z info klicom, opisanem tukaj.

// create document/

{
"document_type_id": 2
// ali
"$ref.document_type_id": "mikrografija.mdocs.document.models.DocumentType;name;certifikat"
// ali
"$ref.document_type_id": "mikrografija\\mdocs\\document\\models\\DocumentType;name;certifikat"
},

V zgornjem primeru vsi načini dosežejo enak rezultat. Pri prvem nastavimo polje direktno, pri drugih dveh pa preko reference;

Pri drugem načinu API-ju sporočimo, da želimo ustvariti zapis za document, pri katerem naj bo v polju document_type_id shranjen tisti document-type, ki ima v polju name = 'certifikat'.

Referenčna zaglavja

Pri referenčnem nastavljanju polja lahko uporabimo dva dodatna zaglavja:

ignoreMissingReference

Po privzetem false

V primeru, da document-type ki naj bi imel name = 'certifikat' ne obstaja, API klic ne bo uspešen. Z uporabo zaglavja ignoreMissingReference lahko to napako ignoriramo - polje bo nastavljeno na null

ignoreDuplicateReference

Po privzetem true

V primeru, da imamo dva zapisa, ki imata vrednost name = 'certifikat', se bo uporabilo zapis z večjo identifikacijsko številko (id = 3 pri spodnjem primeru).

Z uporabo zaglavja ignoreDuplicateReference = false, API klic v primeru podvojenih zapisov ne bo uspešen.

fillPlaceholders

Po privzetem false

Pri nalaganju .docx datotek, samodejno poizkusi izpolniti 'placeholder' polja.

removeUnfiledPlaceholders

Po privzetem false

Pri nalaganju .docx datotek, skrije vsa 'placeholder' polja, ki niso bila samodejno izpolnjena.

// get document-type/

{
"id": 2,
"uuid": "6be1...V98",
"name": "Certifikat",
"description": "Certifikat xyz"
},
{
"id": 3,
"uuid": "asg4...G3D",
"name": "Certifikat",
"description": "Certifikat 123"
},