RoTLD va lansa in iunie un nou API pentru parteneri, documentatia e disponibila pe dev.rotld.ro
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.