api-platform / api-platform/core

Symfony Serializer polution : Unable to generate an IRI

Offen
#8,001 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
OpenAPI Serializer State
Vorherrschende Sprache
PHP
Sterne
2.6k
Forks
980
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
49

Beschreibung

**API Platform version(s) affected**: 2.5.5

**Description**
The APIPlatform serializer is used even outside ou APIPlatform and creates problem when serializing object using the Symfony Serializer

**How to reproduce**
- Create an entity marked as an API Resource
- Create a new Instance (not persisted) and try to serialize it.

```php
// In a Symfony Controller, outside of the API Platform scope
$fake = new Entity();

// Unable to generate an IRI for "Entity".
$serializer->serialize(
$fake,
'json',
['groups' => ['nofields']]
);

// But if we disable iri, using iri = false, it works
$serializer->serialize(
$fake,
'json',
['groups' => ['nofields'], 'iri' => false]
);
```

**Possible Solution**
At the moment the user has to edit his code to add "iri" into the context if the entity is a non persisted object (this is not ideal).
I didn't dive deep enough to offer a specific solution but I think a specific context should be used for API Platform to avoid poluting the Symfony serialization outside of the API.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.