Wise Timetable

Povezovanje

REST API Wise Timetable

Vse, kar Wise Timetable objavlja, je mogoče brati kot JSON prek HTTPS — z Vašim portalom, virtualnim učnim okoljem, lastno aplikacijo, informacijskim zaslonom ali orodjem za poročanje. Priročnik je javen, zato lahko Vaši razvijalci povezavo presodijo, preden kdorkoli karkoli podpiše.

  • API v2, JSON prek HTTPS
  • Popoln priročnik, brez omejitev
  • Predpomnjenje ETag, 304, kadar se ni nič spremenilo

Lahko ga pregledate takoj

Opis storitve ne zahteva poverilnic, zato je prvo vprašanje, ki ga razvijalec zastavi, mogoče odgovoriti v eni vrstici.

GET https://wise-tt.com/api/v2/meta vrne ime storitve, različico in seznam končnih točk, ki jih strežnik trenutno streže. Brez žetona, brez računa, brez prodajnega klica — odprite ga v brskalniku. To je tudi pošten način, kako odkriti vse, kar je bilo dodano po zadnji reviziji priročnika.

Priročnik za povezovanje je objavljen v celoti, brez omejitev, s parametri vsake končne točke, realističnim primerom odgovora za vsako in popolnimi delujočimi primeri v curl, Python, JavaScript in C. Objavljamo ga, ker je povezava, ki je na papirju videti izvedljiva, a se izkaže, da ni, veliko dražje odkritje v tretjem mesecu.

Branje podatkov zahteva račun API, ki ga izdamo mi in je omejen na šole, ki jih sme brati. Ta del je namerni: urnik navaja, kdo poučuje kaj in kateri študenti ga obiskujejo.

Ena zahteva na pogled, ne veriga zahtev

GET /v2/schedule sprejme šolo, časovno obdobje in tisto, kar spremljate — skupine, predavatelja, prostor, predmet ali nič za celotno šolo — ter vrne vsak dogodek v obdobju z že izpolnjenimi prostori, predavatelji, skupinami in smermi, skupaj s prazniki šole in mejami objavljenega študijskega leta. Nadaljnjih klicev za razreševanje id-jev v imena ni.

Izmerjeno na največji šoli na strežniku je en teden približno 100 kB in 75 ms. Obdobje je omejeno na 400 dni na zahtevo, zaradi česar je najslabši primer znan in ne presenečenje na dan, ko nekdo zahteva desetletje.

Id-ji dogodkov nosijo svojo vrsto v prvem znaku: S za načrtovano uro pouka, R za rezervacijo — izpit, rezervacijo prostora, sestanek, laboratorijsko uro.

Kaj API izpostavlja

  • Urnike, po študijski skupini, predavatelju, prostoru ali predmetu — ali celotno šolo naenkrat
  • Poln opis posameznega dogodka, vključno s hierarhijo programa, letnika, smeri in skupine za vsako skupino, ki mu prisostvuje
  • Meje objavljenega študijskega leta, tako da odjemalec uporabniku prepreči navigacijo v tedne, ki ne morejo vsebovati podatkov
  • Praznike, tako da prazen dan velja za praznik in ne za manjkajoče podatke
  • Obvestila, pripeta šoli, skupini, predmetu ali predavatelju, odstranjena podvajanja in vrnjena kot strukturirani objekti
  • Šifranti programov, smeri, skupin, predavateljev, prostorov in predmetov — id-ji in oznake, iz katerih je zgrajen izbirnik
  • Zmogljivost prostora, oznako prostora in lasten poštni predal prostora šole, kjer jih je šola izpolnila
  • Zvonjenje šole, ker dolžine terminov niso povsod enake
  • Lastne številke tednov šole in lastno ime šole za teden, kjer ga ima — številka tedna v tem izdelku ni teden ISO koledarskega leta in noben odjemalec je nikoli ne bi smel računati
  • Vrste rezervacij, ki jih šola uporablja, in prostori, ki jih sme vsak predavatelj rezervirati, za odjemalca, ki ponuja rezervacije in ne le branja
  • Kaj šola dovoljuje odjemalcu ponuditi, tako da je izbirnik za brskanje po predavateljih skrit, kjer se angažmaji predavateljev obravnavajo kot zaupni
  • Prisotnostne sezname, kjer ustanova vodi prisotnost s kodo QR — seznam vsake ure v celoti, po datumih za prvo polnitev in nato tisto, kar se je spremenilo od zadnjega klica, za študijski informacijski sistem. Osebni podatki o študentih, zato jih račun bere le z lastnim dovoljenjem

In deli, v katere lahko pišete

API je pretežno za branje in vsaka izjema je imenovana. POST /v2/eventlinks pripne povezavo do spletnega sestanka posameznim dogodkom po njihovem stalnem identifikatorju — povezava preživi naslednjo ponovno objavo iz namiznega programa, povezava, ki jo vnese urnikar, pa zmaga nad potisnjeno. POST /v2/student-registration omogoča študijskemu informacijskemu sistemu navesti, katerim skupinam in terminom predmetov študent pripada. PUT /v2/lecturer-language nastavi jezik, v katerem je napisan PDF lastnega urnika predavatelja, za ustanove, ki poučujejo v več kot enem.

Vsak od njih je izklopljen, razen če je Vaš račun izrecno pooblaščen za njegovo uporabo, in vsak poroča rezultate po elementih in ne odpove za celotno serijo, ker je bila ena šifra predmeta napačno vtipkana.

Rezervacije prostorov, opravljene s strani osebe in ne računa

Rezervacija je edini del API, ki sploh ne vzame integracijskega računa, razlog pa je vreden jasne navedbe: rezervacijo opravi nekdo in urnik beleži, kdo. Član osebja se prijavi z lastnim uporabniškim imenom in geslom, prejme žeton, ki imenuje eno šolo in traja osem ur, ter ustvarja, spreminja in briše rezervacije kot on sam — zato tudi poverilnica, vgrajena v objavljeno aplikacijo, nikoli ne more doseči te površine.

Preden karkoli zapiše, lahko odjemalec vpraša, ali je vzorec prost. GET /v2/free-busy razširi vsak drugi torek od marca do maja, 08:00–10:00, prostor B-004 v prave datume in poroča, datum za datumom, kaj je že na poti — in ali je to prostor, predavatelj ali skupina. Prekrivek je zavrnjen s priloženimi prekrivajočimi se datumi in ne z golim ne, skupaj z najbližjimi začetnimi urami in drugimi prostori, ki so prosti na vsak od teh datumov. Načrtovalec, ki to misli resno, lahko vseeno rezervira čez prekrivek, in to se zabeleži kot premišljena odločitev in ne skrije.

Celotna površina — prijava osebe, vrste rezervacij šole, seznam dovoljenih prostorov vsakega predavatelja, razpoložljivost ter ustvarjanje, spreminjanje in brisanje rezervacije — je poglavje 13 priročnika, z izdelanim primerom, ki teče od prijave do rezerviranega prostora.

Zgrajeno za odjemalca, ki povprašuje

Vsak odgovor nosi ETag. Ponovite zahtevo z If-None-Match in nespremenjen urnik odgovori z 304 brez telesa, kar je običajen primer za zaslon v preddverju, ki se osvežuje vsakih nekaj minut. Vzoren odjemalec na mirnem dnevu prenese skoraj nič.

Poverilnice se enkrat zamenjajo za žeton nosilca, ki traja 24 ur in kodira šole, ki jih sme brati. Brskalniške aplikacije so podprte z izrecnim seznamom dovoljenih izvorov in ne z nadomestnim znakom — povejte nam izvor, s katerega se streže Vaša nadzorna plošča, in bo dodan.

Napake, ki povedo, kaj je šlo narobe

Napačno vtipkana koda šole, šola, ki je Vaš račun ne sme brati, in teden, ki res nima ur, so tri različne situacije, integracija, ki za vse tri pokaže isto sporočilo, pa nekomu zapravi popoldne. So 400 unknown_school, 403 school_not_permitted in popolnoma običajen 200 s praznim seznamom.

Vsaka napaka vrne stalno strojno berljivo kodo napake, stavek v angleščini in pogosto namig. 500 nosi referenčni id; navedite ga in natančne vrstice dnevnika je mogoče najti takoj.

Starejša površina se še vedno streže in je še vedno zamrznjena

Ustanovam, ki so se povezale z zgodnejšim API, v2 ni pokvaril povezave. Stare poti se še vedno strežejo in so namenoma zamrznjene, v2 pa namenoma ohranja stara imena polj — zato je prehod na v2 sprememba URL in ne sprememba razčlenjevalnika, polja, ki jih v2 doda, pa so dodatki in ne nadomestila.

To je celotna politika v enem stavku: API, na katerem univerza gradi, je obljuba, in njena kršitev zaradi urejanja imen polj ni prihranek.

Oglejte si Wise Timetable na lastnih podatkih

Rezervirajte 45-minutno spletno predstavitev. Preučili bomo težavo z razporejanjem v vaši ustanovi, pokazali, kako jo obravnava Wise Timetable, in odgovorili na vse, kar želi vaša ekipa preizkusiti.