/** * Create a new SecuritySchemeDescribedBy from an array of data * * @param string $key * @param array $data * [ * headers: ?array * queryParameters: ?array * responses: ?array * ] * * @return SecuritySchemeDescribedBy */ public static function createFromArray($key, array $data = []) { $describedBy = new static($key); if (isset($data['body'])) { foreach ($data['body'] as $key => $bodyData) { if (in_array($key, \Raml\WebFormBody::$validMediaTypes)) { $body = \Raml\WebFormBody::createFromArray($key, $bodyData); } else { $body = \Raml\Body::createFromArray($key, $bodyData); } $describedBy->addBody($body); } } if (isset($data['headers'])) { foreach ($data['headers'] as $key => $header) { $describedBy->addHeader(NamedParameter::createFromArray($key, $header)); } } if (isset($data['queryParameters'])) { foreach ($data['queryParameters'] as $key => $queryParameterData) { $describedBy->addQueryParameter(NamedParameter::createFromArray($key, $queryParameterData)); } } if (isset($data['responses']) && is_array($data['responses'])) { foreach ($data['responses'] as $responseCode => $response) { $describedBy->addResponse(Response::createFromArray($responseCode, $response ?: [])); } } return $describedBy; }
/** * Create a new response object from an array * * @param string $statusCode * @param array $data * * @return Response */ public static function createFromArray($statusCode, array $data = []) { $response = new static($statusCode); if (isset($data['body']) && is_array($data['body'])) { foreach ($data['body'] as $key => $bodyData) { $response->addBody(Body::createFromArray($key, $bodyData ?: [])); } } if (isset($data['description'])) { $response->setDescription($data['description']); } if (isset($data['headers'])) { foreach ($data['headers'] as $key => $header) { $response->addHeader(NamedParameter::createFromArray($key, $header)); } } return $response; }
/** * Create a new Method from an array * * @param string $method * @param array $data * [ * body: ?array * headers: ?array * description: ?string * protocols: ?array * responses: ?array * queryParameters: ?array * ] * @param ApiDefinition $apiDefinition * * @throws \Exception * * @return Method */ public static function createFromArray($method, array $data = [], ApiDefinition $apiDefinition = null) { $method = new static($method, $apiDefinition); if (isset($data['body'])) { foreach ($data['body'] as $key => $bodyData) { if (in_array($key, WebFormBody::$validMediaTypes)) { $body = WebFormBody::createFromArray($key, $bodyData); } else { $body = Body::createFromArray($key, $bodyData); } $method->addBody($body); } } if (isset($data['headers'])) { foreach ($data['headers'] as $key => $header) { $method->addHeader(NamedParameter::createFromArray($key, $header)); } } if (isset($data['description'])) { $method->setDescription($data['description']); } if (isset($data['baseUriParameters'])) { foreach ($data['baseUriParameters'] as $key => $baseUriParameter) { $method->addBaseUriParameter(BaseUriParameter::createFromArray($key, $baseUriParameter)); } } if (isset($data['protocols'])) { foreach ($data['protocols'] as $protocol) { $method->addProtocol($protocol); } } if (isset($data['responses']) && is_array($data['responses'])) { foreach ($data['responses'] as $responseCode => $response) { $method->addResponse(Response::createFromArray($responseCode, $response ?: [])); } } if (isset($data['queryParameters'])) { foreach ($data['queryParameters'] as $key => $queryParameterData) { $method->addQueryParameter(NamedParameter::createFromArray($key, $queryParameterData)); } } if (isset($data['securedBy'])) { foreach ($data['securedBy'] as $key => $securedBy) { if ($securedBy) { $method->addSecurityScheme($apiDefinition->getSecurityScheme($securedBy)); } else { $method->addSecurityScheme(SecurityScheme::createFromArray('null', array(), $apiDefinition)); } } } return $method; }