Re: [DISCUSS] RESTful best practices
Hi, my recent commit [3] for SYNCOPE-425 should have applied all applicable RESTful best practices plus most of what discussed below: see issue comments for more details. Please double check the changes I've made to services and let me know if you still found any anomaly. Regards. On 16/10/2013 10:22, Francesco Chicchiriccò wrote: Hi, replying to this old thread, trying to catch some interest about this topic. I'd like to create an issue for improving the current UserService on trunk [2] with the following modifications: 1. add a couple of 'resolve' methods which allows to obtain an user id from its username and vice versa: 1a. GET /{userId}/username 1b. GET /{username}/userId 2. remove any {username} related method 3. add PUT /status/{userId} with UserStatusMod argument, where UserStatusMod is a new transfer object encapsulating any status change request (possibly not limited to current 'activate', 'suspend', 'reactivate'). 4. remove 'activate', 'suspend', 'reactivate' methods 5. (side change) remove UserTO#setStatus in order to avoid confusion on this topic (status cannot be directly set when creating or updating user, it's up to workflow definition); internal methods will use reflection for this purpose WDYT? Regards. On 07/08/2013 09:24, Francesco Chicchiriccò wrote: Hi all, [1] reports that User Service Interface in Version 1.1.0 is still not applying some major RESTful best practices. Therefore refactoring for release = 1.2.0 is most likely. Does anyone remember what is still missing? Shall we restart such discussion? Regards. [1] https://cwiki.apache.org/confluence/display/SYNCOPE/REST+API+upgrade#RESTAPIupgrade-UserService [2] https://svn.apache.org/repos/asf/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/UserService.java [3] http://svn.apache.org/r1537047 -- Francesco Chicchiriccò ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member http://people.apache.org/~ilgrosso/
Re: [DISCUSS] RESTful best practices
Hi, replying to this old thread, trying to catch some interest about this topic. I'd like to create an issue for improving the current UserService on trunk [2] with the following modifications: 1. add a couple of 'resolve' methods which allows to obtain an user id from its username and vice versa: 1a. GET /{userId}/username 1b. GET /{username}/userId 2. remove any {username} related method 3. add PUT /status/{userId} with UserStatusMod argument, where UserStatusMod is a new transfer object encapsulating any status change request (possibly not limited to current 'activate', 'suspend', 'reactivate'). 4. remove 'activate', 'suspend', 'reactivate' methods 5. (side change) remove UserTO#setStatus in order to avoid confusion on this topic (status cannot be directly set when creating or updating user, it's up to workflow definition); internal methods will use reflection for this purpose WDYT? Regards. On 07/08/2013 09:24, Francesco Chicchiriccò wrote: Hi all, [1] reports that User Service Interface in Version 1.1.0 is still not applying some major RESTful best practices. Therefore refactoring for release = 1.2.0 is most likely. Does anyone remember what is still missing? Shall we restart such discussion? Regards. [1] https://cwiki.apache.org/confluence/display/SYNCOPE/REST+API+upgrade#RESTAPIupgrade-UserService [2] https://svn.apache.org/repos/asf/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/UserService.java -- Francesco Chicchiriccò ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member http://people.apache.org/~ilgrosso/
Re: [DISCUSS] RESTful best practices
Il giorno 16/ott/2013, alle ore 10:22, Francesco Chicchiriccò ilgro...@apache.org ha scritto: Hi, replying to this old thread, trying to catch some interest about this topic. I'd like to create an issue for improving the current UserService on trunk [2] with the following modifications: 1. add a couple of 'resolve' methods which allows to obtain an user id from its username and vice versa: 1a. GET /{userId}/username 1b. GET /{username}/userId +1 2. remove any {username} related method +1 3. add PUT /status/{userId} with UserStatusMod argument, where UserStatusMod is a new transfer object encapsulating any status change request (possibly not limited to current 'activate', 'suspend', 'reactivate'). +1 4. remove 'activate', 'suspend', 'reactivate' methods +1 5. (side change) remove UserTO#setStatus in order to avoid confusion on this topic (status cannot be directly set when creating or updating user, it's up to workflow definition); internal methods will use reflection for this purpose +1 WDYT? Regards. BR Marco On 07/08/2013 09:24, Francesco Chicchiriccò wrote: Hi all, [1] reports that User Service Interface in Version 1.1.0 is still not applying some major RESTful best practices. Therefore refactoring for release = 1.2.0 is most likely. Does anyone remember what is still missing? Shall we restart such discussion? Regards. [1] https://cwiki.apache.org/confluence/display/SYNCOPE/REST+API+upgrade#RESTAPIupgrade-UserService [2] https://svn.apache.org/repos/asf/syncope/trunk/common/src/main/java/org/apache/syncope/common/services/UserService.java -- Francesco Chicchiriccò ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member http://people.apache.org/~ilgrosso/ -- Dott. Marco Di Sabatino Di Diodoro Tel. +39 3939065570 Tirasa S.r.l. Viale D'Annunzio 267 - 65127 Pescara Tel +39 0859116307 / FAX +39 085973 http://www.tirasa.net Apache Syncope PMC Member http://people.apache.org/~mdisabatino/