getType(), $this->requestSchema, true); } public function resolve(Request $request, ArgumentMetadata $argument): Generator { if (Request::METHOD_GET === $request->getMethod()) { $dto = $this->handleGetData($request->query->all(), $argument->getType()); } else { $dto = $this->handlePostData($request->getContent(), $argument->getType()); } $this->validate($dto); yield $dto; } private function handleGetData(array $data, string $type): object { return $this->serializer->arrayToObject($data, $type); } private function handlePostData(string $data, string $type): object { return $this->serializer->deserialize($data, $type); } }