Francesco Chicchiriccò created SYNCOPE-694:
----------------------------------------------
Summary: PATCH and PUT update for users, groups and any objects
Key: SYNCOPE-694
URL: https://issues.apache.org/jira/browse/SYNCOPE-694
Project: Syncope
Issue Type: Improvement
Reporter: Francesco Chicchiriccò
Assignee: Francesco Chicchiriccò
Fix For: 2.0.0
Currently {{AnyService}} (and its derivative, providing REST services for
users, groups and any objects) defines the update method as follows:
{code}
@POST
@Path("{key}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
Response update(@NotNull MOD anyMod);
{code}
where {{MOD extends AnyMod}}.
The idea is to move to a definition like as follows:
{code}
@PATCH
@Path("{key}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
Response update(@NotNull P anyPatch);
{code}
e.g. to more REST-compliant patch-based update.
This has the additional benefit of simplifying the interaction with clients
(JavaScript, in particular) not based on {{syncope-client}} Java library.
It could also be useful to add a second update method as follows:
{code}
@PUT
@Path("{key}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
Response update(@NotNull TO anyTO);
{code}
where {{TO extends AnyTO}}.
This latter would allow to build simpler create / update interactions for
clients based on {{syncope-client}} Java library.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)