REST API
REST API este un serviciu web conform cu principiile REST
(Representational State Transfer) si accesibil folosind protocolul http.
Serviciul
este securizat TLS si necesita autentificare. Autentificarea se bazeaza
pe HTTP Digest. Cheia este generata RSA pe 1024 biti. Certificatul este
emis in regie proprie, scopul sau fiind strict asigurarea encriptarii
si decriptarii datelor transmise pe conexiunea http.
API-ul este
dezvoltat in Python si este construit pe platforma open source Twisted
Matrix (http://twistedmatrix.com).
Este
construit pe trei nivele (application layers):
- aplicatia de tip
server web care primeste cereri si ofera raspunsuri. Ruleaza pe mai
multe instante si ofera load-balancing. Conexiunile pe server sunt
persistente pentru a mentine coeziunea sesiunii. Load-balancing-ul este
asigurat de Red Hat Piranha (http://www.redhat.com/support/wpapers/piranha/x32.html).
-
aplicatia de tip middleware, un conglomerat de aplicatii care asigura
interpretarea cererii, sanitizarea datelor, ssl offloading-ul, preventia
flood-ului, formatarea raspunsului, etc. Tot la acest nivel este implementat sistemul de loguri si de monitorizare in timp real folosind o baza de date orientata pe documente (MongoDB).
- aplicatia de tip database
middleware. Asigura conexiunea si mecanismele de interogare a bazelor
de date. Aceasta aplicatie este conforma cu specificatiile DB API 2.0 (http://www.python.org/dev/peps/pep-0249/),
interogarile facandu-se in mod asincron si fara blocaje. DB API 2.0
permite o eficienta si viteza sporita. Sincronizarea datelor si
rezultatelor obtinute din interogari se face la nivelul superior
(middleware application layer) descris la punctul anterior.
Cererile
pe serverul web sunt trimise folosind POST. Cererile de tip GET,
HEADER, PUT, DELETE, UPDATE nu sunt acceptate.
Raspunsul la cereri
este oferit in doua formate: JSON si XML.

