src/Bridge/Symfony/Routing/ApiLoader.php
private function addRoute(RouteCollection $routeCollection, string $resourceClass, string $operationName, array $operation, ResourceMetadata $resourceMetadata, string $operationType): void
    {
        $resourceShortName = $resourceMetadata->getShortName();

        if (isset($operation['route_name'])) {
            return;
        }

        if (!isset($operation['method'])) {
            throw new RuntimeException(sprintf('Either a "route_name" or a "method" operation attribute must exist for the operation "%s" of the resource "%s".', $operationName, $resourceClass));
        }

        if (null === $controller = $operation['controller'] ?? null) {
            $controller = sprintf('%s%s_%s', self::DEFAULT_ACTION_PATTERN, strtolower($operation['method']), $operationType);

            if (!$this->container->has($controller)) {
                throw new RuntimeException(sprintf('There is no builtin action for the %s %s operation. You need to define the controller yourself.', $operationType, $operation['method']));
            }
        }

        $path = trim(trim($resourceMetadata->getAttribute('route_prefix', '')), '/');
        $path .= $this->operationPathResolver->resolveOperationPath($resourceShortName, $operation, $operationType, $operationName);

        $route = new Route(
            $path,
            [
                '_controller' => $controller,
                '_format' => null,
                '_api_resource_class' => $resourceClass,
                sprintf('_api_%s_operation_name', $operationType) => $operationName,
            ] + ($operation['defaults'] ?? []),
            $operation['requirements'] ?? [],
            $operation['options'] ?? [],
            $operation['host'] ?? '',
            $operation['schemes'] ?? [],
            [$operation['method']],
            $operation['condition'] ?? ''
        );

        $routeCollection->add(RouteNameGenerator::generate($operationName, $resourceShortName, $operationType), $route);
    }
private function addRoute(RouteCollection $routeCollection, string $resourceClass, string $operationName, array $operation, ResourceMetadata $resourceMetadata, string $operationType): void
    {
        $resourceShortName = $resourceMetadata->getShortName();

        if (isset($operation['route_name'])) {
            return;
        }

        if (!isset($operation['method'])) {
            throw new RuntimeException(sprintf('Either a "route_name" or a "method" operation attribute must exist for the operation "%s" of the resource "%s".', $operationName, $resourceClass));
        }

        if (null === $controller = $operation['controller'] ?? null) {
            $controller = sprintf('%s%s_%s', self::DEFAULT_ACTION_PATTERN, strtolower($operation['method']), $operationType);

            if (!$this->container->has($controller)) {
                throw new RuntimeException(sprintf('There is no builtin action for the %s %s operation. You need to define the controller yourself.', $operationType, $operation['method']));
            }
        }

        $path = trim(trim($resourceMetadata->getAttribute('route_prefix', '')), '/');
        $path .= $this->operationPathResolver->resolveOperationPath($resourceShortName, $operation, $operationType, $operationName);

        $route = new Route(
            $path,
            [
                '_controller' => $controller,
                '_format' => null,
                '_api_resource_class' => $resourceClass,
                sprintf('_api_%s_operation_name', $operationType) => $operationName,
            ] + ($operation['defaults'] ?? []),
            $operation['requirements'] ?? [],
            $operation['options'] ?? [],
            $operation['host'] ?? '',
            $operation['schemes'] ?? [],
            [$operation['method']],
            $operation['condition'] ?? ''
        );

        $routeCollection->add(RouteNameGenerator::generate($operationName, $resourceShortName, $operationType), $route);
    }
private function addRoute ( RouteCollection $ routeCollection , string $ resourceClass , string $ operationName , array $ operation , ResourceMetadata $ resourceMetadata , string $ operationType ) : void { $ resourceShortName = $ resourceMetadata -> getShortName ( ) ; if ( isset ( $ operation [ 'route_name' ] ) ) { return ; } if ( ! isset ( $ operation [ 'method' ] ) ) { throw new RuntimeException ( sprintf ( 'Either a "route_name" or a "method" operation attribute must exist for the operation "%s" of the resource "%s".' , $ operationName , $ resourceClass ) ) ; } if ( null === $ controller = $ operation [ 'controller' ] ?? null ) { $ controller = sprintf ( '%s%s_%s' , self :: DEFAULT_ACTION_PATTERN , strtolower ( $ operation [ 'method' ] ) , $ operationType ) ; if ( ! $ this -> container -> has ( $ controller ) ) { throw new RuntimeException ( sprintf ( 'There is no builtin action for the %s %s operation. You need to define the controller yourself.' , $ operationType , $ operation [ 'method' ] ) ) ; } } $ path = trim ( trim ( $ resourceMetadata -> getAttribute ( 'route_prefix' , '' ) ) , '/' ) ; $ path .= $ this -> operationPathResolver -> resolveOperationPath ( $ resourceShortName , $ operation , $ operationType , $ operationName ) ; $ route = new Route ( $ path , [ '_controller' => $ controller , '_format' => null , '_api_resource_class' => $ resourceClass , sprintf ( '_api_%s_operation_name' , $ operationType ) => $ operationName , ] + ( $ operation [ 'defaults' ] ?? [ ] ) , $ operation [ 'requirements' ] ?? [ ] , $ operation [ 'options' ] ?? [ ] , $ operation [ 'host' ] ?? '' , $ operation [ 'schemes' ] ?? [ ] , [ $ operation [ 'method' ] ] , $ operation [ 'condition' ] ?? '' ) ; $ routeCollection -> add ( RouteNameGenerator :: generate ( $ operationName , $ resourceShortName , $ operationType ) , $ route ) ; }
Creates and adds a route for the given operation to the route collection.

@throws RuntimeException
Creates and adds a route for the given operation to the route collection .