# *** dokumentacija gimsisextClient rest api endpointa -- Anton L. Šijanec -- sijanec/gimsisextclient
endpoint je testno javno dostopen na http://gimb.tk/test.php
to je testni endpoint in ni namenjen produkcijskim okoljem, nanj se ne zanašajte.
če res zanesljiv api endpoint, ga morate gostovati sami.
uporaba:
splošno:
parametre pošiljate v skladu s URL formatom (RFC2616)
citat iz RFC6920:
Query Parameter separator '?': The query parameter separator acts as
a separator between the digest value and the query parameters (if
specified). For compatibility with Internationalized Resource
Identifiers (IRIs), non-ASCII characters in the query part MUST be
encoded as UTF-8, and the resulting octets MUST be percent-encoded
(see [RFC3986], Section 2.1).
Query Parameters: A "tag=value" list of optional query parameters as
are used with HTTP URLs [RFC2616] with a separator character '&'
between each. For example, "foo=bar&baz=bat".
Query paramater seperator uporabljajte le pri GET zahtevah:
https://gimb.tk/test.php?ime=vrednost&ime2=vrednost2
in ne pri POST:
nepravilno:
POST /test.php HTTP/1.1
Host: gimb.tk
Accept: */*
Content-Length: xxx
?ime=vrednost&ime2=vrednost2
pravilno:
POST /test.php HTTP/1.1
Host: gimb.tk
Accept: */*
Content-Length: xxx-1
ime=vrednost&ime2=vrednost2
arrayi:
arraye pošiljate z ime[] formatom. $a=array(1,2,3) bi bil a[]=1&a[]=2&a[]=3, ali pa a[0]=1&a[1]=2&a[2]=3.
seveda lahko uporabljate tudi ključe arrayev. $b=array("a"=>"b") bi bil b[a]=b
napake:
napake sintakse se ne pošiljajo, ob napaki dobite le prazno stran: mogoče dobite HTTP error 500, kar pa je odvisno od php-fpm nastavitev
ves stdout output klase gimsisextClient pa dobite.
-1 no login info
-2 not logged in
-3 bad username or password
-4 not written yet
avtentikacija:
avtenticirate se za vsako zahtevo, saj se piškotni *NE* uporabljajo (juhu!-meni se to zdi dobra ideja)
uporabniško ime: ime:u vresnost:uporabniško ime
geslo: ime:p vrednost:geslo
primer GET:
GET /test.php?u=username&p=password&ostali=parametri HTTP/1.1
metode objekta:
klic na določeno metodo.
zahtevi dodate spremenljivko m=metoda.
primer GET za metodo fetchurnik:
GET /test.php?u=username&p=password&m=fetchurnik&ostali=parametri HTTP/1.1
podajanje parametrov/argumentov:
ime parametra funkcija določi po zaporedju, v zahtevi jih pošljete kot individualne vrednosti a, b, c, d, ... .
primer GET za metodo posljisporocilo, ko uporabnikust 5313 (Rok Štular) pošljemo sporočilo z zadevo EHLO in telesom <b>ehlo from api</b>
GET /test.php?u=username&p=password&m=posljisporocilo&a=5313&b=EHLO&c=%3Cb%3Eehlo%20from%20api%3C%2Fb%3E HTTP/1.1
pomemben namig: kot je razvidno iz primera, morate parametre ustrezno url šifirati. v PHP jeziku lahko uporabite urlencode($telo)
metode (velja za gimsisextClient verzije 0.8.0):
spodaj je seznam metod z njihovimi parametri.
metode (če je pri parametru = in neka vrednost, bo na to vrednost nastavljen argument v primeru neizpolnitve):
ime metode;parametri;opombe
fetchurnik;datum=null,datum je niz datuma ponedeljka želenega tedna v formatu 21.10.2019. Ob nenavedbi datuma bo izbran trenutni teden.
fetchocenjevanja;;samoumevno
fetchprofesorji;;samoumevno
fetchprofil;;samoumevno, glej setprofil
setprofil;ime,priimek,spol,eposta,obvestila,telefon);spol: "M"/"Ž" obvestila: "true"/"false" telefon: +tccpndddddd (npr. +38664176345)-od verzije zgimsisa 1.0.7226.34224 se da spreminjati le telefonsko. glej fetchabout
fetchabout;;podatke o gimssiext programu-pove tudi, katera vezija zgimsisa se poganja.
fetchneprebrana;;vrne število neprebranih sporočil. ta števec je čuden, jaz se ne bi zanašal nanj, raje bi bral naprej in uporabil spodnjo metodo
fetchsporocilaseznam;katera;katera: 0=prejeta 1=poslana 2=izbrisana, id: int|int|bool, kjer je bool status prebranosti sporočila (1=prebrano)
fetchsporocilo;id;id sporocila je v gimsisext formatu IdMsg /al' kakorkol' je že/, int|int|bool
posljisporocilo;userid,zadeva,telo;userid je zajeban' dobit', kmalu bomo leakal useridje, vedno vrne null. HTML oznake morajo biti prevedene iz < in > v < in >, ampak se bodo (samo v telesu, v zadevi ne) prevedle nazaj v < in >, tako da lahko na primer poganjamo skripte, čisto casually.
setgeslo;geslo,spremenigeslovobjektu;geslo je seveda novo geslo, spremenigeslovobjektu pa za uporabnike apija ni pomemben. NI POMEMBEN! NI PAČ, kaj te briga kaj nardi?!?!?!?!!1111!
izbrisisporocilo;id;id je IdMsg|IdZapis. sporocilo bo premaknjeno med izbrisana sporocila/fetchsporocilaseznam(2)
getversion;;vrne array(major, minor, patch) verzijo klase
fetchizostanki;datzacetka,datkonca;datzacetka in dankonca določita tajmspen v katerem naj vrne izostanke. formata d.m.Y (npr. 13.10.1971) ali pa array(24, 21, 1969)
resetpassword;user;ne potrebuje prijave, vrne e-mail uporabnika ali -6 (user ne obstaja)
that's all folks
<< EOF