Swagger document different property content for POST and GET requests
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- openapi, php
- Área
- api, documentation
Línea de trabajo
Comienza reproduciendo la salida generada de Swagger/OpenAPI para las operaciones POST y GET en ApiPlatform 3.2, usando el ejemplo PlaceOpportunityUsage y su comportamiento de ApiProperty, Groups y normalización anidada. Rastrea cómo se generan los esquemas de las operaciones y los ejemplos de las propiedades, y verifica después si se pueden representar ejemplos de IRI específicos de la operación y de propiedades anidadas. Se considera terminado cuando se admiten las diferentes salidas de POST/GET o la limitación queda documentada claramente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
We are using ApiPlatform for 2 years to develop our API. Some properties are (denormalized/normalized) different like on write using IRI reference but on read show nested properties instead.
Even we can update and set the iri reference example on the property like:
class PlaceOpportunityUsage extends AbstractEntityHasId
{
/**
* @var PlaceOpportunity|null
*/
#[ORM\ManyToOne(targetEntity: PlaceOpportunity::class)]
#[ORM\JoinColumn(referencedColumnName: 'id', nullable: false)]
#[ApiProperty(example: '/api/opportunities/{id}')]
#[Groups(['OpportunityUsage:write', 'OpportunityUsage:read'])]
private ?PlaceOpportunity $opportunity = null;
We think ApiPlatform has feature to automatically set the IRI reference and put to property example without explicitly specify. Also when we set example like that, on each request body/response this property appears as large. But some requests normalizing this property as nested and returns nested object like that:
{
"@id": "/api/opportunity/usages/10",
"@type": "PlaceOpportunityUsage",
"opportunity": {
"@id": "/api/instant/opportunities/31",
"@type": "PlaceOpportunity",
"status": true,
"place": {
"@id": "/api/places/2ffeab17-13d8-458a-abf8-f20d3ba7a08f",
"@type": "Place",
"name": "Uncle Wingman",
"id": "2ffeab17-13d8-458a-abf8-f20d3ba7a08f",
"createdAt": "2025-07-08",
"updatedAt": "2026-05-11"
},
"dayInterval": [
"MONDAY",
"TUESDAY",
"FRIDAY",
"SATURDAY"
],
....
},
....
}
I want to show different examples on POST or GET requests. When I remove the #[ApiProperty] attribute on the property, at this time the request shows that property example as http://example.com, because we couldn't find documentation about iris property in the ApiProperty instance, we tought field for setting reference examples this didn't work.
We are using ApiPlatform 3.2, and we cannot update our version yet.
Is there a way to fix this issue?
- Lenguaje dominante
- PHP
- Estrellas
- 2.6k
- Forks
- 987
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 80
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de api-platform/core
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
api-platform/core#8665 ·
Los mantenedores suelen responder en 1 día
-
Doctrine\Orm\OrderExtension fails on SortDirectionPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
api-platform/core#8660 ·
Los mantenedores suelen responder en 1 día
-
DeserializeProvider calls PartialDenormalizationException::getErrors(), deprecated in Symfony 8.1Posiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
api-platform/core#8650 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
api-platform/core#8649 ·
Los mantenedores suelen responder en 1 día
-
`OrderExtension` and `OrderFilter` pass string sort directions, deprecated since `doctrine/orm` 3.7Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
api-platform/core#8648 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de api-platform/core
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 2 días
-
backend bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
smarty-php/smarty#1215 ·