public function createSynonym($tagPath, Request $request)
    {
        $synonymCreateStruct = $this->inputDispatcher->parse(
            new Message(
                ['Content-Type' => $request->headers->get('Content-Type')],
                $request->getContent()
            )
        );

        $synonymCreateStruct->mainTagId = $this->extractTagIdFromPath($tagPath);

        try {
            $createdSynonym = $this->tagsService->addSynonym($synonymCreateStruct);
        } catch (InvalidArgumentException $e) {
            throw new ForbiddenException($e->getMessage());
        }

        return new Values\CreatedTag(new Values\RestTag($createdSynonym, 0, 0));
    }