Apiplatform v2.7/3.0 - Пользовательское действие патча - неправильный IRIPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Apiplatform v2.7/3.0 - Пользовательское действие патча - неправильный IRI

Сообщение Anonymous »

Я должен мигрировать 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»