在控制器中获取序列化上下文组

Get serialization context groups in controller

我遇到的问题是,根据用户权限,使用了不同的上下文组,我找不到设置上下文组的地方。

为了调试问题,我正在寻找一种可能性来找出 api 调用正在使用哪个序列化上下文组。这是我的代码:

<?php

namespace AppBundle\Controller\Api\Upload;


use AppBundle\Entity\Upload\UploadRepository;
use AppBundle\Entity\Upload\UploadType;
use AppBundle\Entity\Upload\UploadTypeRepository;

use Doctrine\ORM\ORMException;
use GuzzleHttp\Psr7\UploadedFile;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use ApiPlatform\Core\Annotation\ApiResource;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use AppBundle\General\Registry;
use Symfony\Component\Security\Core\Exception\BadCredentialsException;
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
use AppBundle\Entity\Upload\Upload;
use AppBundle\Entity\Application\ApplicationData;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\Serializer\Serializer;

/**
 * Class UploadController
 *
 * @package AppBundle\Controller\Api\Upload
 *
 * @ApiDoc()
 * @ApiResource(attributes={"pagination_enabled"=true})
 */
class UploadController extends Controller
     /**
     * Get an upload.
     *
     * @ApiDoc(
     *     resource=true,
     *     description="gets an upload",
     * )
     * @Route(
     *     name="getUploadSpecial",
     *     path="/fileuploads/{id}",
     *     defaults={"_api_resource_class"=Upload::class, "_api_item_operation_name"="getUpload"}
     * )
     * @Method("GET")
     *
     * @param Upload $data
     *
     * @return null|string
     *
     */
    public function getUploadAction($data)
    {
        // here I'd like to return the serialization context group
        return $data;
    }

是否可以在控制器中获取序列化上下文组?

嗯,看来控制器不是找到它的正确位置。 倒进去比较好 src/Serializer/JsonEncoder.php 在函数编码中,就在 return 之前,像这样:

/**
 * {@inheritdoc}
 */
public function encode($data, $format, array $context = [])
{
    dump($data, $context);die;
    return $this->jsonEncoder->encode($data, $format, $context);
}