getServiceManager()->get(OpenAPISchemaValidateRequestMiddleware::SERVICE_ID) ->addSchema($this->getOpenApiMiddlewareContext()); $middlewareHandler = $this->getServiceManager()->get(MiddlewareManager::class) ->append($this->getMiddlewareContext())->getMiddlewareHandler(); $this->getServiceManager()->register(OpenAPISchemaValidateRequestMiddleware::SERVICE_ID, $openApiMiddleware); $this->getServiceManager()->register(MiddlewareRequestHandler::SERVICE_ID, $middlewareHandler); } public function down(Schema $schema): void { /** @var OpenAPISchemaValidateRequestMiddleware $middleware */ $middleware = $this->getServiceManager()->get(OpenAPISchemaValidateRequestMiddleware::SERVICE_ID); $middleware->removeSchema($this->getOpenApiMiddlewareContext()); /** @var MiddlewareManager $middlewareManager */ $middlewareManager = $this->getServiceManager()->get(MiddlewareManager::class); $handler = $middlewareManager->detach($this->getMiddlewareContext())->getMiddlewareHandler(); $this->getServiceManager()->register(OpenAPISchemaValidateRequestMiddleware::SERVICE_ID, $middleware); $this->getServiceManager()->register(MiddlewareRequestHandler::SERVICE_ID, $handler); } private function getMiddlewareContext(): MiddlewareContext { return new MiddlewareContext( [ MiddlewareContext::PARAM_ROUTE => '/taoMediaManager/SharedStimulus/patch', MiddlewareContext::PARAM_MIDDLEWARE_ID => OpenAPISchemaValidateRequestMiddleware::SERVICE_ID ] ); } private function getOpenApiMiddlewareContext(): OpenApiMiddlewareContext { return new OpenApiMiddlewareContext([ OpenApiMiddlewareContext::PARAM_ROUTE => '/taoMediaManager/SharedStimulus/patch', OpenApiMiddlewareContext::PARAM_SCHEMA_PATH => self::OPENAPI_SPEC_PATH, ]); } }