Description
I have a User entity linked with a bidirectional ManyToMany association to an Event entity: an event have users registered, and it's possible to get a user events through an ApiSubresource.
When a user wants to register to an event, I should update the event to add the user:
PUT /events/{id}
{
"users": [
"/users/1",
"/users/2",
…
"/users/8888" <- the user who wants to register
]
}
This could also be done by adding the event to the user:
PUT /users/{id}
{
"events": [
"/events/1",
"/events/2",
…
"/events/8888" <- the event the user wants to register
]
}
In the first example, I'll expose the users id, which could be a security issue. In the second example, I'll have to find all the user events id which is not optimized.
To optimize this process, I've created a custom entry-point PUT /events/{id}/register
to register the current user to the event.
It would be awesome to allow to send a write request to my ApiSubresource to add an event without reminding all previous events, for instance:
PUT /users/12345/events
{
"@id": "/events/67890"
}
And to remove an event from this ApiSubresource: DELETE /users/12345/events/67890
What do you think @api-platform/core-team ?