Я должен мигрировать 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
Кемеровские программисты php общаются здесь
1741607599
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',
)]
Подробнее здесь: [url]https://stackoverflow.com/questions/79494885/apiplatform-v2-7-3-0-custom-patch-action-wrong-iri[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия