我正在使用Symfony 4.3和API平台2.4。在我的API中,有资源‘组’和相关的子资源‘电话’:
{
"@context": "/contexts/groups",
"@id": "/groups/7116",
"@type": "groups",
"id": 7116,
"name": "Standard Test",
"description": "",
"phones": {
"7848412": {
"@id": "/phones/7848412",
"@type": "phones",
"id": 7848412,
"phone": "+412344545656",
"a": "o2",
"b": "",
"c": "",
"d": "",
"e": ""
}
}资源YAML:
entities\ClientPhoneGroup:
shortName: 'groups'
description: "Phone's group"
collectionOperations:
post:
denormalization_context:
groups: ['write']
itemOperations:
get: ~
put:
denormalization_context:
groups: ['write']
delete: ~
attributes:
normalization_context:
groups: ['read']
security: "is_granted('IS_AUTHENTICATED_FULLY')"
subresource_operations:
phone_get_subresource:
method: 'GET'
properties:
id:
identifier: true
phones:
subresource:
resourceClass: 'entities\ClientPhone'
collection: false和
entities\ClientPhone:
shortName: 'phones'
description: "Phones list by group"
collectionOperations:
post:
path: /groups/{group_id}/phones
requirements:
group_id: '\d+'
denormalization_context:
groups: ['write']
itemOperations:
get: ~
put:
denormalization_context:
groups: ['write']
delete: ~
attributes:
normalization_context:
groups: ['read']
security: "is_granted('IS_AUTHENTICATED_FULLY') "序列化程序YAML:
entities\ClientPhoneGroup:
attributes:
id:
groups: ['read']
name:
groups: ['read', 'write']
description:
groups: ['read', 'write']
phones:
groups: ['read']和
entities\ClientPhone:
attributes:
id:
groups: ['read']
phone:
groups: ['read', 'write', 'edit']
a:
groups: ['read', 'write', 'edit']
b:
groups: ['read', 'write', 'edit']
c:
groups: ['read', 'write', 'edit']
d:
groups: ['read', 'write', 'edit']
e:
groups: ['read', 'write', 'edit']如何将组资源中的嵌入式电话列表更改为“/group/7116/ phone”?如何将链接添加到“group”资源(例如/group/7116)到电话sub-resource?
发布于 2019-11-12 07:35:08
回答问题2。从normalization_context:groups: ['read']中删除entities\ClientPhone,以便当您调用GET组资源api时,电话子资源将具有IRI而不是所有字段。
https://stackoverflow.com/questions/58558354
复制相似问题