--- a/core/modules/rest/src/Plugin/rest/resource/EntityResource.php
+++ b/core/modules/rest/src/Plugin/rest/resource/EntityResource.php
@@ -45,9 +45,19 @@
       throw new AccessDeniedHttpException();
     }
 
+
     $response = new ResourceResponse($entity, 200);
     $response->addCacheableDependency($entity);
     $response->addCacheableDependency($entity_access);
+    
+    $entcb = function($refEnts, $resp) use (&$entcb) {
+        foreach($refEnts as $refEnt) {
+		$entcb($refEnt->referencedEntities(), $resp);
+                $resp->addCacheableDependency($refEnt);
+	}
+    };
+    $entcb($entity->referencedEntities(), $response);
+
     foreach ($entity as $field_name => $field) {
       /** @var \Drupal\Core\Field\FieldItemListInterface $field */
       $field_access = $field->access('view', NULL, TRUE);
