Disaccoppiare i componenti dal database / allontanarsi dalle connessioni dirette del database è uno schema comune. Spostare l'accesso al middleware / un componente che front-end il database può contribuire a migliorare la sicurezza e la modularità e fornire un luogo per implementare la convalida e l'interpretazione dei dati che altrimenti "ricadono" in SQL, stored procedure e codice di database sul lato client. A fronte di ciò, è necessario valutare lo sviluppo, il tempo di esecuzione e, eventualmente, il costo economico del front-end del middleware / gestione dei dati. Ma in molti punti di scala del progetto, i front-end dei dati sono spesso considerati una buona scelta.
Se controlli il design e i componenti del backend, utilizzando un'API RESTful, specialmente nel suo formato comune, ad es. servito da HTTP e codificato con JSON - è notevolmente inefficiente rispetto ad altre alternative (es. link diretto alla libreria, Protocol Buffers , < a href="http://en.wikipedia.org/wiki/Protocol_Buffers"> Risparmio , vari tipi di ESB , altri meccanismi RPC, ...) che non passano attraverso un ciclo serialize-to-text, serve, deserialize-from-text per ogni chiamata API. REST è anche semanticamente migliore di un meccanismo di interazione a lunghezza di braccio, dato che alcuni costrutti (per esempio transazioni multi-step, streaming, oggetti binari di grandi dimensioni, eccezioni, consegna garantita, ...) sono più semplicemente, puliti o gestiti direttamente con altre forme di interazione.
Alcuni motivi per cui potresti ancora voler utilizzare un backend RESTful: semplicità, coerenza (ogni client, locale o remoto, passa attraverso una sola API) e time-to-market (es. non aver bisogno di imparare un'altra API / stile di interazione ). Questi presuppongono che stai esponendo il tuo database, relativamente direttamente, attraverso l'API RESTful. Se è strettamente per l'uso di componenti sotto il tuo controllo, REST non è probabilmente la scelta migliore (per ricchezza semantica o efficienza).