Se da una parte la libertà delle query dei dati di GraphQL risulta essere una caratteristica molto positiva, dall’altra parte potrebbe causare un serio problema di sicurezza, soprattutto se si vogliono offrire API aperte, sulle quali non si può controllare il comportamento delle query da parte di client terzi. Quindi potrebbe verificarsi che un alto numero di query porti il server al collasso (intenzionalmente o meno). Uno scenario simile, da cui bisogna in ogni caso proteggersi, non risulta essere così minaccioso se si utilizza un’API di REST. Implementare GraphQL sul back-end di modo che funzioni velocemente e in sicurezza è quindi molto più difficile.
Inoltre anche l’implementazione di un processo di caching per query non mutevoli è significativamente più complicato con GraphQL in confronto alle query di un’interfaccia REST, in quanto queste possono essere salvate (ad esempio nel browser) mediante metodi di caching della specifica HTTP.