public function handle(ServerRequestInterface $request)
{
$document = new Document();
static::$events->fire(new ConfigureApiController($this));
$data = $this->data($request, $document);
static::$events->fire(new PrepareApiData($this, $data, $request, $document));
$serializer = static::$container->make($this->serializer);
$serializer->setActor($request->getAttribute('actor'));
$element = $this->createElement($data, $serializer)->with($this->extractInclude($request))->fields($this->extractFields($request));
$document->setData($element);
return new JsonApiResponse($document);
}