Veebiteenus vs API
API – application programming interface – rakenduste programmeerimisliides – программируемый интерфейс, который позволяет двум приложениям обмениваться данными между собой.
API võimaldab kahel rakendusel omavahel andmeid vahetada.

Veebiteenus – API, mis kasutab HTTP protokolli nagu veebiserveridki (Apache, Nginx) brauseritega suheldes (Firefox, Google Chrome), mistõttu saab neid ka brauseriga mõningasel määral (ainult GET päringute osas) kasutada.
Kõik veebiteenused on API-d, aga kõik API-d ei ole veebiteenused.
Kõige levinumat viisi veebiteenuse tegemiseks: SOAP ja REST.
SOAP – on standard, mis kirjeldab sõnumite vormingut, mida veebiteenus ja selle klient üksteisega vahetavad.
REST – on kogumik mittekohustuslikke soovitusi, kuidas hästikäituvad rakendused võiksid andmeid üle veebi (see tähendab kasutades HTTP protokolli) vahetada.
SOAP
SOAP on väga ulatuslik, kuid keeruline standardite kogum.
SOAP sätestab XML struktuuri veebiteenustega andmede vahetamiseks.
Arhitektuur aitab kaasa erinevate operatsioonide sooritamisele tarkvaraprogrammide vahel.
Kohustuslikke osi: ENVELOPE, HEADER, BODY ja FAULT.
ENVELOPE määratleb XML-sõnumi taotluse alguse ja lõpu.
HEADER sisaldab kõiki serveri poolt töödeldavaid päiseelemente.
BODY sisaldab ülejäänud XML-objekti, mis moodustab taotluse.
FAULT kasutatakse vigade käsitlemiseks.
REST
REST – Representational State Transfer – Esinduslik riigiülekanne – on tavaliselt nimetatud pigem veebiteenuste arhitektuuristiiliks. REST ei määratle sõnumi sisu, vaid ainult teatud tingimusi, millele eeskujulik veebiteenus. Ta võimaldab suhtlust kahe tarkvaraprogrammi vahel: üks programm saab teiselt programmilt ressursse taotleda ja nendega manipuleerida.
REST on üles ehitatud HTTP-protokollile, kasutades URL-ile sarnaseid viiteid ressurssidele, mida nimetatakse URI-deks (Uniform Resource Identifier) ja HTTP verbe nagu GET, POST, PUT ja DELETE, mis näitavad, millist tegevust klient ressursiga soovib teha.
Kasutatud andmete edastamiseks kodeerimisformaate: XML, HTML või JSON. Kõige eelistatum on JSON, kuna see on kõige ühilduvam ja lihtsamini kasutatav.
REST on väga arendajasõbralik, sest selle kasutamine on palju lihtsam kui SOAP. Nüüd on praktiliselt kõik avalikud API-d REST API-d.

REST veebiteenusega saab suhelda kasutades HTTP protokolli. Antud joonisel esitab REST veebiteenus küsitud andmete hetkeoleku JSON formaadis.
Mida tähendab RESTful?
Enamik API-sid maailmas on RESTful, mis tähendab, et nad järgivad suures osas teatud reeglite või õieti piirangute kogumit, mida tuntakse kui Representational State Transfer ehk REST.
Ametlikult ei ole REST standard, vaid kirja pandud parimate praktikate kirjeldus.
Kuidas valida SOAPi ja REST-i vahel?
Võrreldes RESTiga on SOAP kindlasti keerulisem ja kasutab rohkem andmemahtu, aga SOAP pakub ka eeliseid:
- transpordist sõltumatu
- töötab hästi hajutatud ettevõtluskeskkondades (REST API server vajab otseühendust kliendiga, aga SOAPiga pole vahet)
- on standardiseeritud (kõik on standardiga paigas, kuidas implementeerida, aga RESTi puhul peab disainiotsuseid ise tegema ja guugeldama neid)
- ws-standardid (valmisarendatud sõnumikomplektid tüüpilisteks stsenaariumiteks nagu nt sisselogimine)
- sisseehitatud veahaldus ja automaatika
RESTi eelised:
- paindlik ja lihtne kasutada
- veebiteenusega suhtlemiseks ei ole vaja lisatarkvara
- väiksem õppimiskõver
- parem jõudlus / optimaalne võrguliikluse kasutus
Siiski põhiline, mis eristab SOAPi RESTist on keerukus: REST on kergesti mõistetav ja rakendatav.