Veebiteenused

Mis on veebiteenus ja API?

  • API (Application Programming Interface) – liides, mille kaudu tarkvarad saavad üksteisega suhelda.
  • Veebiteenus – API, mis kasutab HTTP protokolli (nagu veebiserverid ja brauserid).
  • Kõik veebiteenused on API-d, aga mitte kõik API-d ei ole veebiteenused (nt Windows API, OpenGL).

SOAP (Simple Object Access Protocol)

  • Vanem, standardiseeritud protokoll andmete vahetamiseks.
  • Kasutab XML formaati sõnumite jaoks.
  • Võib töötada erinevate transpordiviisidega (HTTP, SMTP jne).
  • SOAP sõnum koosneb osadest:
    • Envelope – sõnumi algus/lõpp
    • Header – metaandmed
    • Body – päringu või vastuse andmed
    • Fault – veateated
  • On olemas seotud standardid:
    • WSDL – teenuse kirjeldus
    • UDDI – teenuste kataloog (enam ei kasutata)

Eelised: standardiseeritus, töötab hästi keerukates süsteemides, sisseehitatud veahaldus.
Puudused: XML on „jutukas“, sõnumid on mahukad, õppimiskõver järsem.


REST (Representational State Transfer)

  • Arhitektuuristiil, mitte range standard.
  • Toetub HTTP protokollile ja kasutab:
    • URI – ressursi aadress (nt /invoices, /accounts)
    • HTTP meetodid:
      • GET – andmete lugemine
      • POST – uue ressursi loomine
      • PUT – olemasoleva ressursi asendamine
      • PATCH – osaline uuendamine
      • DELETE – kustutamine
  • Andmevormingud: JSON (kõige levinum), XML, HTML.
  • REST on stateless – iga päring on sõltumatu.

Eelised: lihtne, paindlik, vähe andmemahtu, JSON on kiire ja mugav.
Puudused: puudub ametlik standard, mõnikord erinevad tõlgendused (“RESTful” vs “mitte päris REST”).

Millal kasutada?

  • SOAP – kui on vaja rangeid standardeid, turvalisust ja keerulist funktsionaalsust (nt pangandus, ärilahendused).
  • REST – kui on vaja lihtsust, kiirust ja arendajasõbralikkust (nt veebirakendused, mobiiliäpide API-d).