La nostra applicazione consente agli utenti di leggere / aggiungere / modificare / eliminare record di tabelle tramite l'interfaccia utente. Per impedire agli utenti concorrenti di modificare la stessa riga della tabella (scenari di record non aggiornati) utilizziamo un identificatore di riga e un campo di versione delle righe nella tabella. Queste operazioni sono ora esposte anche attraverso i servizi web. Per riutilizzare il codice, l'API di lettura è stata progettata per restituire l'ID di riga e i valori di versione di riga dal database in modo che gli stessi valori possano essere passati nella regola api per identificare una riga nella tabella. Quindi, se un utente vuole modificare le righe in una tabella, deve prima recuperarlo usando la read api per ottenere l'ID di riga e amp; versione di fila per ogni riga. Questi valori devono essere quindi passati alla regola api call in modo che il sistema identifichi la riga corretta ed esegua l'operazione di modifica.
Capisco che ci sono due problemi con un tale disegno api
- I dettagli del database interno sono esposti tramite le API
- Prestazioni: al momento la chiamata a api di regolazione deve essere abbinata alla chiamata api di lettura.
Per quanto riguarda il business, abbiamo un concetto di campi chiave nella tabella che definisce l'unicità funzionale. Potremmo utilizzare questi campi definiti dall'utente per identificare la riga, ma come eviteremmo aggiornamenti di riga simultanei senza la versione di riga?
Hai qualche suggerimento su come potrebbe essere progettata l'API per soddisfare i requisiti aziendali? Qualsiasi esempio del mondo reale che possa essere referenziato.
Grazie.