diff --git a/src/CodeGenerator/src/Definition/ServiceDefinition.php b/src/CodeGenerator/src/Definition/ServiceDefinition.php index 37b60bdd4..c852aa49b 100644 --- a/src/CodeGenerator/src/Definition/ServiceDefinition.php +++ b/src/CodeGenerator/src/Definition/ServiceDefinition.php @@ -15,6 +15,8 @@ */ class ServiceDefinition { + private const SUPPORTED_PROTOCOLS = ['json', 'rest-json', 'query', 'rest-xml']; + /** * @var string */ @@ -150,7 +152,19 @@ public function getJsonVersion(): float public function getProtocol(): string { - return $this->definition['metadata']['protocol']; + $protocol = $this->definition['metadata']['protocol']; + if (\in_array($protocol, self::SUPPORTED_PROTOCOLS, true)) { + return $protocol; + } + + $protocols = $this->definition['metadata']['protocols'] ?? []; + foreach (self::SUPPORTED_PROTOCOLS as $supportedProtocol) { + if (\in_array($supportedProtocol, $protocols, true)) { + return $supportedProtocol; + } + } + + return $protocol; } public function getApiReferenceUrl(): string