/** * {@inheritdoc} */ public function getAnnotations() { $annotations = []; $hydraDoc = $this->apiDocumentationBuilder->getApiDocumentation(); $entrypointHydraDoc = $this->getResourceHydraDoc($hydraDoc, '#Entrypoint'); /** * @var ResourceInterface */ foreach ($this->resourceCollection as $resource) { $classMetadata = $this->classMetadataFactory->getMetadataFor($resource->getEntityClass()); $prefixedShortName = ($iri = $classMetadata->getIri()) ? $iri : '#' . $resource->getShortName(); $resourceHydraDoc = $this->getResourceHydraDoc($hydraDoc, $prefixedShortName); if ($hydraDoc) { foreach ($resource->getCollectionOperations() as $operation) { $annotations[] = $this->getApiDoc(true, $resource, $operation, $resourceHydraDoc, $entrypointHydraDoc); } foreach ($resource->getItemOperations() as $operation) { $annotations[] = $this->getApiDoc(false, $resource, $operation, $resourceHydraDoc); } } } return $annotations; }
/** * Gets API doc. * * @param Request $request * * @return array */ public function __invoke(Request $request) { $request->attributes->set('_api_format', 'jsonld'); return $this->apiDocumentationBuilder->getApiDocumentation(); }