summaryrefslogtreecommitdiffstats
path: root/endpoint.txt
blob: f4fd97ab8dca8ad1d207580cc0f3f727a64bfcf6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# *** 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 password but user exists
    -4 not written yet
    -5 unable to create cookie dir
    -6 non existing user
  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 &lt; in &gt;, 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