src/Swagger/Serializer/DocumentationNormalizer.php
private function getPathOperation(bool $v3, string $operationName, array $operation, string $method, string $operationType, string $resourceClass, ResourceMetadata $resourceMetadata, array $mimeTypes, \ArrayObject $definitions, \ArrayObject $links): \ArrayObject
    {
        $pathOperation = new \ArrayObject($operation[$v3 ? 'openapi_context' : 'swagger_context'] ?? []);
        $resourceShortName = $resourceMetadata->getShortName();
        $pathOperation['tags'] ?? $pathOperation['tags'] = [$resourceShortName];
        $pathOperation['operationId'] ?? $pathOperation['operationId'] = lcfirst($operationName).ucfirst($resourceShortName).ucfirst($operationType);
        if ($v3 && 'GET' === $method && OperationType::ITEM === $operationType && $link = $this->getLinkObject($resourceClass, $pathOperation['operationId'], $this->getPath($resourceShortName, $operationName, $operation, $operationType))) {
            $links[$pathOperation['operationId']] = $link;
        }
        if ($resourceMetadata->getTypedOperationAttribute($operationType, $operationName, 'deprecation_reason', null, true)) {
            $pathOperation['deprecated'] = true;
        }
        if (null !== $this->formatsProvider) {
            $responseFormats = $this->formatsProvider->getFormatsFromOperation($resourceClass, $operationName, $operationType);
            $responseMimeTypes = $this->extractMimeTypes($responseFormats);
        }
        switch ($method) {
            case 'GET':
                return $this->updateGetOperation($v3, $pathOperation, $responseMimeTypes ?? $mimeTypes, $operationType, $resourceMetadata, $resourceClass, $resourceShortName, $operationName, $definitions);
            case 'POST':
                return $this->updatePostOperation($v3, $pathOperation, $responseMimeTypes ?? $mimeTypes, $operationType, $resourceMetadata, $resourceClass, $resourceShortName, $operationName, $definitions, $links);
            case 'PATCH':
                $pathOperation['summary'] ?? $pathOperation['summary'] = sprintf('Updates the %s resource.', $resourceShortName);
            // no break
            case 'PUT':
                return $this->updatePutOperation($v3, $pathOperation, $responseMimeTypes ?? $mimeTypes, $operationType, $resourceMetadata, $resourceClass, $resourceShortName, $operationName, $definitions);
            case 'DELETE':
                return $this->updateDeleteOperation($v3, $pathOperation, $resourceShortName, $operationType, $operationName, $resourceMetadata);
        }

        return $pathOperation;
    }
private function getPathOperation(bool $v3, string $operationName, array $operation, string $method, string $operationType, string $resourceClass, ResourceMetadata $resourceMetadata, array $mimeTypes, \ArrayObject $definitions, \ArrayObject $links): \ArrayObject
    {
        $pathOperation = new \ArrayObject($operation[$v3 ? 'openapi_context' : 'swagger_context'] ?? []);
        $resourceShortName = $resourceMetadata->getShortName();
        $pathOperation['tags'] ?? $pathOperation['tags'] = [$resourceShortName];
        $pathOperation['operationId'] ?? $pathOperation['operationId'] = lcfirst($operationName).ucfirst($resourceShortName).ucfirst($operationType);
        if ($v3 && 'GET' === $method && OperationType::ITEM === $operationType && $link = $this->getLinkObject($resourceClass, $pathOperation['operationId'], $this->getPath($resourceShortName, $operationName, $operation, $operationType))) {
            $links[$pathOperation['operationId']] = $link;
        }
        if ($resourceMetadata->getTypedOperationAttribute($operationType, $operationName, 'deprecation_reason', null, true)) {
            $pathOperation['deprecated'] = true;
        }
        if (null !== $this->formatsProvider) {
            $responseFormats = $this->formatsProvider->getFormatsFromOperation($resourceClass, $operationName, $operationType);
            $responseMimeTypes = $this->extractMimeTypes($responseFormats);
        }
        switch ($method) {
            case 'GET':
                return $this->updateGetOperation($v3, $pathOperation, $responseMimeTypes ?? $mimeTypes, $operationType, $resourceMetadata, $resourceClass, $resourceShortName, $operationName, $definitions);
            case 'POST':
                return $this->updatePostOperation($v3, $pathOperation, $responseMimeTypes ?? $mimeTypes, $operationType, $resourceMetadata, $resourceClass, $resourceShortName, $operationName, $definitions, $links);
            case 'PATCH':
                $pathOperation['summary'] ?? $pathOperation['summary'] = sprintf('Updates the %s resource.', $resourceShortName);
            // no break
            case 'PUT':
                return $this->updatePutOperation($v3, $pathOperation, $responseMimeTypes ?? $mimeTypes, $operationType, $resourceMetadata, $resourceClass, $resourceShortName, $operationName, $definitions);
            case 'DELETE':
                return $this->updateDeleteOperation($v3, $pathOperation, $resourceShortName, $operationType, $operationName, $resourceMetadata);
        }

        return $pathOperation;
    }
private function getPathOperation ( bool $ v3 , string $ operationName , array $ operation , string $ method , string $ operationType , string $ resourceClass , ResourceMetadata $ resourceMetadata , array $ mimeTypes , \ ArrayObject $ definitions , \ ArrayObject $ links ) : \ ArrayObject { $ pathOperation = new \ ArrayObject ( $ operation [ $ v3 ? 'openapi_context' : 'swagger_context' ] ?? [ ] ) ; $ resourceShortName = $ resourceMetadata -> getShortName ( ) ; $ pathOperation [ 'tags' ] ?? $ pathOperation [ 'tags' ] = [ $ resourceShortName ] ; $ pathOperation [ 'operationId' ] ?? $ pathOperation [ 'operationId' ] = lcfirst ( $ operationName ) . ucfirst ( $ resourceShortName ) . ucfirst ( $ operationType ) ; if ( $ v3 && 'GET' === $ method && OperationType :: ITEM === $ operationType && $ link = $ this -> getLinkObject ( $ resourceClass , $ pathOperation [ 'operationId' ] , $ this -> getPath ( $ resourceShortName , $ operationName , $ operation , $ operationType ) ) ) { $ links [ $ pathOperation [ 'operationId' ] ] = $ link ; } if ( $ resourceMetadata -> getTypedOperationAttribute ( $ operationType , $ operationName , 'deprecation_reason' , null , true ) ) { $ pathOperation [ 'deprecated' ] = true ; } if ( null !== $ this -> formatsProvider ) { $ responseFormats = $ this -> formatsProvider -> getFormatsFromOperation ( $ resourceClass , $ operationName , $ operationType ) ; $ responseMimeTypes = $ this -> extractMimeTypes ( $ responseFormats ) ; } switch ( $ method ) { case 'GET' : return $ this -> updateGetOperation ( $ v3 , $ pathOperation , $ responseMimeTypes ?? $ mimeTypes , $ operationType , $ resourceMetadata , $ resourceClass , $ resourceShortName , $ operationName , $ definitions ) ; case 'POST' : return $ this -> updatePostOperation ( $ v3 , $ pathOperation , $ responseMimeTypes ?? $ mimeTypes , $ operationType , $ resourceMetadata , $ resourceClass , $ resourceShortName , $ operationName , $ definitions , $ links ) ; case 'PATCH' : $ pathOperation [ 'summary' ] ?? $ pathOperation [ 'summary' ] = sprintf ( 'Updates the %s resource.' , $ resourceShortName ) ; // no break case 'PUT' : return $ this -> updatePutOperation ( $ v3 , $ pathOperation , $ responseMimeTypes ?? $ mimeTypes , $ operationType , $ resourceMetadata , $ resourceClass , $ resourceShortName , $ operationName , $ definitions ) ; case 'DELETE' : return $ this -> updateDeleteOperation ( $ v3 , $ pathOperation , $ resourceShortName , $ operationType , $ operationName , $ resourceMetadata ) ; } return $ pathOperation ; }
Gets a path Operation Object.

@see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#operation-object

@param string[] $mimeTypes
Gets a path Operation Object .