diff --git a/src/Context/CurrentContext.php b/src/Context/CurrentContext.php
index a75410d..051e622 100644
--- a/src/Context/CurrentContext.php
+++ b/src/Context/CurrentContext.php
@@ -5,6 +5,7 @@ namespace Drupal\jsonapi\Context;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\jsonapi\ResourceType\ResourceTypeRepositoryInterface;
 use Symfony\Component\HttpFoundation\RequestStack;
+use Drupal\jsonapi\ResourceType\ResourceType;
 
 /**
  * Service for accessing information about the current JSON API request.
@@ -75,6 +76,16 @@ class CurrentContext {
     return $this->resourceType;
   }
 
+  /**
+   * Sets the JSON API resource type.
+   *
+   * @param \Drupal\jsonapi\ResourceType\ResourceType
+   *   The JSON API resource type for the current request.
+   */
+  public function setResourceType(ResourceType $resource_type) {
+    $this->resourceType = $resource_type;
+  }
+
   /**
    * Checks if the request is on a relationship.
    *
diff --git a/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php b/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php
index e74b26a..8bad2c4 100644
--- a/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php
+++ b/src/Normalizer/JsonApiDocumentTopLevelNormalizer.php
@@ -166,6 +166,9 @@ class JsonApiDocumentTopLevelNormalizer extends NormalizerBase implements Denorm
     if (empty($context['resource_type'])) {
       $context['resource_type'] = $this->currentContext->getResourceType();
     }
+    else {
+      $this->currentContext->setResourceType($context['resource_type']);
+    }
     $value_extractor = $this->buildNormalizerValue($object->getData(), $format, $context);
     if (!empty($context['cacheable_metadata'])) {
       $context['cacheable_metadata']->addCacheableDependency($value_extractor);
