1.1. Implementare
API-ul ar trebui să ofere operații CRUD și implementări specifice ERP.
API-ul ar trebui implementat astfel încât să reprezinte modelele de ecran configurate în backend.
Pentru sincronizarea backend–frontend, se propune utilizarea Feathers JS sau a altui furnizor (socket.io, express, RabbitMQ).
La accesarea datelor prin CRUD sau API, ar trebui să poată fi cerută includerea ori ascunderea anumitor câmpuri sau returnarea tuturor câmpurilor.
Ar trebui implementată citirea în profunzime, inclusiv a entităților copil, cu atenție la timpul mare necesar operațiilor JOIN complexe, observat în teste cu Entity Framework și Postgres.
Entitățile copil ar trebui citite doar pentru informația afișată. Totuși, prea multe cereri de încărcare încetinesc interfața. Dacă trebuie citite entități copil pentru un părinte, aceste citiri ar trebui delegate unui mecanism de citire în profunzime, imediat după sau simultan cu încărcarea părintelui. Astfel, operațiile JOIN se execută în baza de date, iar rezultatele sunt furnizate împreună.
Backendul ar trebui să furnizeze datele traduse, împreună cu configurațiile entităților și opțiunile de afișare a câmpurilor.
Datele de afișare, opțiunile listelor de selecție și datele solicitate frecvent ar trebui păstrate în cache, dacă sunt marcate astfel. Ordonarea după momentul stocării și al ultimei utilizări permite eliminarea lor pentru eliberarea memoriei.
1.2. Securitate
Serviciul de securitate trebuie să genereze tokenuri JWT pentru autentificare.
O extensie va genera automat reguli de firewall și proxy/gateway pe baza configurațiilor de securitate ale entităților.
Toate cererile vor include antetul HTTP Bearer, cu JWT-ul furnizat de serviciul de autentificare.