# *** dokumentacija gimsisextClient rest api endpointa -- Anton L. Šijanec -- sijanec/gimsisextClientEndpoint
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.7.1):
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
fetchsporocilo;id;id sporocila je v gimsisext formatu IdMsg /al' kakorkol' je že/, int|int|int in nimam faking pojma kako dela, prfukjen, kr neki gre gor pa dol
posljisporocilo;userid,zadeva,telo;userid je zajeban' dobit', kmalu bomo leakal useridje, bodite pozorni: @bezigeeks on IG. telo je lahko HTML (ja, tudi XSS je "podprt, če bi temu lahko tako rekli!"). Kdaj pa kdaj se bo gimsisu zahotelo narest HTTP 500 error in !poslati sporočila, če vsebuje HTML, saj ga ima za XSS. idk... ker metoda vedno vrne null, za preverjanje, če je sporočilo poslano, priporočam zgornjo metodo
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)
dnevnik sprememb / changelog, začenjši z 0.5.13:
0.7.1 - petek, 8. novembra 2019 -- dodal resetgeslo
0.6.0 - ponedeljek, 4. novembra 2019 ob 19:14 -- dodal fetchocene,
0.5.13 - ponedeljek, 4. novembra 2019 -- api sprememba, popravljen tiskarski škrat, fetchurnik namesto "ucilinca", ja, res, "ucilinca" v JSONu napiše "prostor", popravite gimsisextClientEndpointClient kliente.
that's all folks
<< EOF