Я должен мигрировать API, разработанный на Apiplatform V2 в Apiplatform V3. reactivated:
security_post_denormalize: 'is_granted("OT", object)'
security_post_denormalize_message: "Vous n'avez pas l'accès à cette ressource."
method: PATCH
path: /o_ts/{id}/reactivated
controller: App\Controller\OTReactivated
openapi_context:
summary: Work Order reactivated
< /code>
Я преобразовал его в атрибут Php 8#[ApiResource(
operations: [
new GetCollection(normalizationContext: ['groups' => ['ot_collection_read']]),
new Get(requirements: ['id' => '\d+'], normalizationContext: ['groups' => ['ot_read']]),
new Post(
securityPostDenormalize: 'is_granted("OT", object)',
securityPostDenormalizeMessage: "Vous n'avez pas l'accès à cette ressource.",
validationContext: ['groups' => [OTAddSequencedGroup::class]],
),
new Put(
denormalizationContext: ['groups' => ['ot_update_write', 'ot:attachments', 'attachment:write', 'attachment:subcontractingProductionCenter', 'attachment:customFieldValues', 'attachment_custom_field_value:field', 'custom_field_value:write']],
securityPostDenormalize: 'is_granted("OT", object)',
securityPostDenormalizeMessage: "Vous n'avez pas l'accès à cette ressource.",
validationContext: ['groups' => ['Default', OTDefaultSequencedGroup::class, 'attachment:valid:create', 'ot:address:update']]
),
new Patch(
requirements: ['id' => '\d+'],
denormalizationContext: ['groups' => ['ot_update_write', 'ot:attachments', 'attachment:write', 'attachment:subcontractingProductionCenter', 'attachment:customFieldValues', 'attachment_custom_field_value:field', 'custom_field_value:write']],
securityPostDenormalize: 'is_granted("OT", object)',
securityPostDenormalizeMessage: "Vous n'avez pas l'accès à cette ressource.",
validationContext: ['groups' => ['Default', OTDefaultSequencedGroup::class, 'attachment:valid:create', 'ot:address:update']]
),
],
normalizationContext: ['groups' => ['ot_read']],
denormalizationContext: ['groups' => ['ot_write']],
validationContext: ['groups' => OTDefaultSequencedGroup::class],
security: 'is_granted("ROLE_USER")'
)]
#[Patch(
uriTemplate: '/o_ts/{id}/reactivated',
controller: OTReactivated::class,
openapiContext: ['summary' => 'Work Order reactivated'],
securityPostDenormalize: 'is_granted("OT", object)',
securityPostDenormalizeMessage: "Vous n'avez pas l'accès à cette ressource.",
name: 'api_o_ts_reactivated',
)]
< /code>
Пока все хорошо, маршрут здесь, и звонок работает, как и ожидалось. Кроме ответа. Сгенерированный IRI не верен. Похоже, что конвертер Apiplatform считает, что идентификатор объекта «-id- /Reactivatied», но это не.{
"@context": "\/contexts\/OT",
"@id": "\/o_ts\/2\/reactivated",
"@type": "OT",
"id": 2
}
@id должен быть: "/o_ts/2"
Я знаю, что в документации говорится, что это не рекомендуется, но API уже сделан и в производстве ... так что я не могу просто изменить маршруты…
Так что у кого -то есть у кого -то, что у кого -то задумал, что у кого -то в этом : < /p>
#[Patch(
uriTemplate: '/o_ts/{id}/reactivated',
uriVariables: ['id' => new Link(fromClass: self::class, identifiers: ['id'])],
controller: OTClose::class,
openapiContext: ['summary' => 'Work Order reactivated'],
securityPostDenormalize: 'is_granted("OT", object)',
securityPostDenormalizeMessage: "Vous n'avez pas l'accès à cette ressource.",
name: 'api_o_ts_reactivated',
)]
Подробнее здесь: https://stackoverflow.com/questions/794 ... -wrong-iri
Apiplatform v2.7/3.0 - Пользовательское действие патча - неправильный IRI ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Apiplatform v2.7/3.0 - Пользовательское действие патча - неправильный IRI
Anonymous » » в форуме Php - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Мутация Symfony ApiPlatform GraphQl завершается с ошибкой при отправке массива IRI
Anonymous » » в форуме Php - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-