68 Json $serializer =
null 85 return array_keys($this->serviceMetadata->getServicesConfig());
97 public function generate($requestedServices, $requestScheme, $requestHost, $endPointUrl)
100 ksort($requestedServices);
101 $prefix = get_class($this) . $this->serializer->serialize($requestedServices);
102 $cacheId = $this->cache->generateCacheIdUsingContext(
$prefix);
103 $cachedSchemaContent = $this->cache->load($cacheId);
104 if ($cachedSchemaContent !==
false) {
105 return $cachedSchemaContent;
109 $schemaContent = $this->
generateSchema($allowedServicesMetadata, $requestScheme, $requestHost, $endPointUrl);
112 return $schemaContent;
124 abstract protected function generateSchema($requestedServiceMetadata, $requestScheme, $requestHost, $requestUri);
142 return ucfirst($messageName);
155 foreach ($requestedServiceMetadata as $serviceName => $serviceData) {
156 foreach ($serviceData[
'methods'] as $methodName => $methodData) {
157 $this->typeProcessor->processInterfaceCallInfo($methodData[
'interface'], $serviceName, $methodName);
170 $allowedServicesMetadata = [];
171 foreach ($requestedServices as $serviceName) {
183 return $allowedServicesMetadata;
198 foreach ($routeGroup as $httpMethod => &$route) {
200 unset($routeGroup[$httpMethod]);
203 if (empty($routeGroup)) {
removeRestrictedRoutes(&$serviceMetadata)
generateSchema($requestedServiceMetadata, $requestScheme, $requestHost, $requestUri)
__construct(Webapi $cache, \Magento\Framework\Reflection\TypeProcessor $typeProcessor, ServiceTypeListInterface $serviceTypeList, ServiceMetadata $serviceMetadata, Authorization $authorization, Json $serializer=null)
getServiceMetadata($serviceName)
collectCallInfo($requestedServiceMetadata)
getElementComplexTypeName($messageName)
getAllowedServicesMetadata($requestedServices)
generate($requestedServices, $requestScheme, $requestHost, $endPointUrl)