/**
  * @param RequestInterface $request
  * @throws JsonApiException
  */
 protected function checkRelationshipName(RequestInterface $request)
 {
     $name = $request->getRelationshipName();
     if (!in_array($name, $this->allowedRelationships(), true)) {
         throw new JsonApiException([], 404);
     }
 }
 /**
  * @inheritdoc
  */
 public function handle(ApiInterface $api, RequestInterface $request)
 {
     $interpreter = $api->getRequestInterpreter();
     $resourceType = $request->getResourceType();
     /** Check the relationship is acceptable */
     if ($request->getRelationshipName()) {
         $this->checkRelationshipName($request);
     }
     /** Check request parameters are acceptable */
     $this->checkQueryParameters($api, $request, $this->filterValidator($resourceType));
     /** Authorize the request */
     if ($this->authorizer) {
         $this->authorize($interpreter, $this->authorizer, $request);
     }
     /** Check the document content is acceptable */
     if ($this->validators) {
         $this->checkDocumentIsAcceptable($this->validators, $interpreter, $request);
     }
 }