src/Bridge/NelmioApiDoc/Extractor/AnnotationsProvider/ApiPlatformProvider.php
private function getApiDoc(bool $collection, string $resourceClass, ResourceMetadata $resourceMetadata, string $operationName, array $resourceHydraDoc, array $entrypointHydraDoc = []): ApiDoc
    {
        if ($collection) {
            $method = $this->operationMethodResolver->getCollectionOperationMethod($resourceClass, $operationName);
            $route = $this->operationMethodResolver->getCollectionOperationRoute($resourceClass, $operationName);
            $operationHydraDoc = $this->getCollectionOperationHydraDoc($resourceMetadata->getShortName(), $method, $entrypointHydraDoc);
        } else {
            $method = $this->operationMethodResolver->getItemOperationMethod($resourceClass, $operationName);
            $route = $this->operationMethodResolver->getItemOperationRoute($resourceClass, $operationName);
            $operationHydraDoc = $this->getOperationHydraDoc($method, $resourceHydraDoc);
        }

        $data = [
            'resource' => $route->getPath(),
            'description' => $operationHydraDoc['hydra:title'] ?? '',
            'resourceDescription' => $resourceHydraDoc['hydra:title'] ?? '',
            'section' => $resourceHydraDoc['hydra:title'] ?? '',
        ];

        if (isset($operationHydraDoc['expects']) && 'owl:Nothing' !== $operationHydraDoc['expects']) {
            $data['input'] = sprintf('%s:%s:%s', ApiPlatformParser::IN_PREFIX, $resourceClass, $operationName);
        }

        if (isset($operationHydraDoc['returns']) && 'owl:Nothing' !== $operationHydraDoc['returns']) {
            $data['output'] = sprintf('%s:%s:%s', ApiPlatformParser::OUT_PREFIX, $resourceClass, $operationName);
        }

        if ($collection && 'GET' === $method) {
            $resourceFilters = $resourceMetadata->getCollectionOperationAttribute($operationName, 'filters', [], true);

            $data['filters'] = [];
            foreach ($resourceFilters as $filterId) {
                if ($filter = $this->getFilter($filterId)) {
                    foreach ($filter->getDescription($resourceClass) as $name => $definition) {
                        $data['filters'][] = ['name' => $name] + $definition;
                    }
                }
            }
        }

        $apiDoc = new ApiDoc($data);
        $apiDoc->setRoute($route);

        return $apiDoc;
    }
private function getApiDoc(bool $collection, string $resourceClass, ResourceMetadata $resourceMetadata, string $operationName, array $resourceHydraDoc, array $entrypointHydraDoc = []): ApiDoc
    {
        if ($collection) {
            $method = $this->operationMethodResolver->getCollectionOperationMethod($resourceClass, $operationName);
            $route = $this->operationMethodResolver->getCollectionOperationRoute($resourceClass, $operationName);
            $operationHydraDoc = $this->getCollectionOperationHydraDoc($resourceMetadata->getShortName(), $method, $entrypointHydraDoc);
        } else {
            $method = $this->operationMethodResolver->getItemOperationMethod($resourceClass, $operationName);
            $route = $this->operationMethodResolver->getItemOperationRoute($resourceClass, $operationName);
            $operationHydraDoc = $this->getOperationHydraDoc($method, $resourceHydraDoc);
        }

        $data = [
            'resource' => $route->getPath(),
            'description' => $operationHydraDoc['hydra:title'] ?? '',
            'resourceDescription' => $resourceHydraDoc['hydra:title'] ?? '',
            'section' => $resourceHydraDoc['hydra:title'] ?? '',
        ];

        if (isset($operationHydraDoc['expects']) && 'owl:Nothing' !== $operationHydraDoc['expects']) {
            $data['input'] = sprintf('%s:%s:%s', ApiPlatformParser::IN_PREFIX, $resourceClass, $operationName);
        }

        if (isset($operationHydraDoc['returns']) && 'owl:Nothing' !== $operationHydraDoc['returns']) {
            $data['output'] = sprintf('%s:%s:%s', ApiPlatformParser::OUT_PREFIX, $resourceClass, $operationName);
        }

        if ($collection && 'GET' === $method) {
            $resourceFilters = $resourceMetadata->getCollectionOperationAttribute($operationName, 'filters', [], true);

            $data['filters'] = [];
            foreach ($resourceFilters as $filterId) {
                if ($filter = $this->getFilter($filterId)) {
                    foreach ($filter->getDescription($resourceClass) as $name => $definition) {
                        $data['filters'][] = ['name' => $name] + $definition;
                    }
                }
            }
        }

        $apiDoc = new ApiDoc($data);
        $apiDoc->setRoute($route);

        return $apiDoc;
    }
private function getApiDoc ( bool $ collection , string $ resourceClass , ResourceMetadata $ resourceMetadata , string $ operationName , array $ resourceHydraDoc , array $ entrypointHydraDoc = [ ] ) : ApiDoc { if ( $ collection ) { $ method = $ this -> operationMethodResolver -> getCollectionOperationMethod ( $ resourceClass , $ operationName ) ; $ route = $ this -> operationMethodResolver -> getCollectionOperationRoute ( $ resourceClass , $ operationName ) ; $ operationHydraDoc = $ this -> getCollectionOperationHydraDoc ( $ resourceMetadata -> getShortName ( ) , $ method , $ entrypointHydraDoc ) ; } else { $ method = $ this -> operationMethodResolver -> getItemOperationMethod ( $ resourceClass , $ operationName ) ; $ route = $ this -> operationMethodResolver -> getItemOperationRoute ( $ resourceClass , $ operationName ) ; $ operationHydraDoc = $ this -> getOperationHydraDoc ( $ method , $ resourceHydraDoc ) ; } $ data = [ 'resource' => $ route -> getPath ( ) , 'description' => $ operationHydraDoc [ 'hydra:title' ] ?? '' , 'resourceDescription' => $ resourceHydraDoc [ 'hydra:title' ] ?? '' , 'section' => $ resourceHydraDoc [ 'hydra:title' ] ?? '' , ] ; if ( isset ( $ operationHydraDoc [ 'expects' ] ) && 'owl:Nothing' !== $ operationHydraDoc [ 'expects' ] ) { $ data [ 'input' ] = sprintf ( '%s:%s:%s' , ApiPlatformParser :: IN_PREFIX , $ resourceClass , $ operationName ) ; } if ( isset ( $ operationHydraDoc [ 'returns' ] ) && 'owl:Nothing' !== $ operationHydraDoc [ 'returns' ] ) { $ data [ 'output' ] = sprintf ( '%s:%s:%s' , ApiPlatformParser :: OUT_PREFIX , $ resourceClass , $ operationName ) ; } if ( $ collection && 'GET' === $ method ) { $ resourceFilters = $ resourceMetadata -> getCollectionOperationAttribute ( $ operationName , 'filters' , [ ] , true ) ; $ data [ 'filters' ] = [ ] ; foreach ( $ resourceFilters as $ filterId ) { if ( $ filter = $ this -> getFilter ( $ filterId ) ) { foreach ( $ filter -> getDescription ( $ resourceClass ) as $ name => $ definition ) { $ data [ 'filters' ] [ ] = [ 'name' => $ name ] + $ definition ; } } } } $ apiDoc = new ApiDoc ( $ data ) ; $ apiDoc -> setRoute ( $ route ) ; return $ apiDoc ; }
Builds ApiDoc annotation from ApiPlatform data.
Builds ApiDoc annotation from ApiPlatform data .