Skip to content

V3.2.20 Did Not Fix The BackedEnum Serialization Priority Error #6285

Closed
symfony/symfony
#54484
@gnito-org

Description

@gnito-org

API Platform version(s) affected: 3.2.20

Description
Refer to symfony/symfony#54478.

I do not use GraphQL, and the issue still exists in 3.2.20.

The only work-around I can find is to hack the priority in services.yaml.

How to reproduce

Here is a repository with a problem replicator.

Possible Solution

Additional Context

Activity

gnito-org

gnito-org commented on Apr 3, 2024

@gnito-org
Author
# config/services.yaml

    serializer.normalizer.backed_enum:
        class: Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer
        tags:
            - { name: 'serializer.normalizer', priority: -891 }

Any priority from -891 and lower fixes the problem.

gnito-org

gnito-org commented on Apr 3, 2024

@gnito-org
Author

In my case, the GraphQL normalizer is not even listed.

Symfony Container Services Tagged with "serializer.normalizer" Tag
==================================================================

 ----------------------------------------------------------- ---------- ------------------------------------------------------------------------------------------- 
  Service ID                                                  priority   Class name                                                                                 
 ----------------------------------------------------------- ---------- ------------------------------------------------------------------------------------------- 
  serializer.denormalizer.unwrapping                          1000       Symfony\Component\Serializer\Normalizer\UnwrappingDenormalizer                             
  api_platform.openapi.normalizer.legacy                                 ApiPlatform\OpenApi\Serializer\LegacyOpenApiNormalizer                                     
  api_platform.normalizer.constraint_violation_list           -780       ApiPlatform\Serializer\ConstraintViolationListNormalizer                                   
  api_platform.hydra.normalizer.constraint_violation_list     -780       ApiPlatform\Hydra\Serializer\ConstraintViolationListNormalizer                             
  api_platform.problem.normalizer.constraint_violation_list   -780       ApiPlatform\Problem\Serializer\ConstraintViolationListNormalizer                           
  api_platform.jsonld.normalizer.validation_exception         -800       ApiPlatform\Symfony\Validator\Serializer\ValidationExceptionNormalizer                     
  api_platform.hydra.normalizer.documentation                 -800       ApiPlatform\Hydra\Serializer\DocumentationNormalizer                                       
  api_platform.hydra.normalizer.entrypoint                    -800       ApiPlatform\Hydra\Serializer\EntrypointNormalizer                                          
  api_platform.hydra.normalizer.error                         -800       ApiPlatform\Hydra\Serializer\ErrorNormalizer                                               
  api_platform.serializer.normalizer.validation_exception     -800       ApiPlatform\Symfony\Validator\Serializer\ValidationExceptionNormalizer                     
  api_platform.problem.normalizer.error                       -810       ApiPlatform\Problem\Serializer\ErrorNormalizer                                             
  serializer.normalizer.backed_enum                           -880       Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer                               
  serializer.normalizer.flatten_exception                     -880       Symfony\Component\Messenger\Transport\Serialization\Normalizer\FlattenExceptionNormalizer  
  serializer.normalizer.problem                               -890       Symfony\Component\Serializer\Normalizer\ProblemNormalizer                                  
  serializer.normalizer.uid                                   -890       Symfony\Component\Serializer\Normalizer\UidNormalizer                                      
  serializer.normalizer.translatable                          -890       Symfony\Component\Serializer\Normalizer\TranslatableNormalizer                             
  api_platform.jsonld.normalizer.item                         -890       ApiPlatform\JsonLd\Serializer\ItemNormalizer                                               
  api_platform.serializer.normalizer.item                     -895       ApiPlatform\Serializer\ItemNormalizer                                                      
  serializer.normalizer.datetime                              -910       Symfony\Component\Serializer\Normalizer\DateTimeNormalizer                                 
  serializer.normalizer.constraint_violation_list             -915       Symfony\Component\Serializer\Normalizer\ConstraintViolationListNormalizer                  
  serializer.normalizer.mime_message                          -915       Symfony\Component\Serializer\Normalizer\MimeMessageNormalizer                              
  serializer.normalizer.datetimezone                          -915       Symfony\Component\Serializer\Normalizer\DateTimeZoneNormalizer                             
  serializer.normalizer.dateinterval                          -915       Symfony\Component\Serializer\Normalizer\DateIntervalNormalizer                             
  serializer.normalizer.form_error                            -915       Symfony\Component\Serializer\Normalizer\FormErrorNormalizer                                
  serializer.normalizer.data_uri                              -920       Symfony\Component\Serializer\Normalizer\DataUriNormalizer                                  
  serializer.normalizer.json_serializable                     -950       Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer                         
  api_platform.hydra.normalizer.collection_filters            -985       ApiPlatform\Hydra\Serializer\CollectionFiltersNormalizer                                   
  serializer.denormalizer.array                               -990       Symfony\Component\Serializer\Normalizer\ArrayDenormalizer                                  
  api_platform.jsonld.normalizer.object                       -995       ApiPlatform\JsonLd\Serializer\ObjectNormalizer                                             
  serializer.normalizer.object                                -1000      Symfony\Component\Serializer\Normalizer\ObjectNormalizer                                   
 ----------------------------------------------------------- ---------- ------------------------------------------------------------------------------------------- 
ambroisemaupate

ambroisemaupate commented on Apr 4, 2024

@ambroisemaupate
Contributor

Related to #6279

soyuka

soyuka commented on Apr 4, 2024

@soyuka
Member

Closing as not an API Platform bug, hopefully this gets fixed in Symfony.

added a commit that references this issue on Apr 4, 2024

bug #54484 [Serializer] reset backed_enum priority, and re-prioritise…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @ambroisemaupate@soyuka@gnito-org

      Issue actions

        V3.2.20 Did Not Fix The BackedEnum Serialization Priority Error · Issue #6285 · api-platform/core