Hi Francesco,

here mid be another opportunity for improvements. ;-)

The module syncope-client is quite confusing at the moment, because it contains 
mainly model classes that are used by client and server components. My 
suggestion would be to create another module 'syncope-common' and place all 
common model and interface classes in there. This would cause the following 
dependencies:

syncope-common -> (none)
syncope-core -> syncope-common
syncope-client -> syncope-common
syncope-console -> syncope-client -> syncope-common

What are your thoughts?

Best regards
Jan


> -----Original Message-----
> From: Francesco Chicchiriccò [mailto:[email protected]]
> Sent: Dienstag, 30. Oktober 2012 12:46
> To: [email protected]
> Subject: Re: REST Interface
> 
> On 30/10/2012 12:31, Jan Bernhardt wrote:
> > Hi @all,
> >
> > I'm currently working on replacing Spring Webservice Stack with CXF. By
> doing this I discovered a couple of issues, that I would like to discuss here.
> >
> >
> > 1.       Syncope's REST API is only defined throw classes. My suggestion
> would be to extract Interfaces from these Classes and place these in a new
> package 'org.apache.syncope.core.rest.api'. All REST and security annotations
> would be located with the interface.
> > By doing this we would have a better chance to provide a stable REST
> interface and allow others to provide their own implementations.
> 
> +1
> I would also:
>  1. move this new package 'org.apache.syncope.core.rest.api' to syncope-
> client module  2. refactor all syncope-console classes '*RestClient' to
> implement the new APIs and move such refactored classes to syncope-client
> module as well
> 
> > 2.       Since replacing the WS-Stack will affect many classes, I would 
> > like to
> use this opportunity and also refactor the REST URLs to become more
> RESTfull-Style. Currently there are URLs like '/create', '/update' and
> '/delete/{roleId}'. I would like to refactor this to use matching HTTP
> Operations (e.g. POST, PUT and DELETE), instead of coding the operation
> name inside the URL.
> 
> A big +1 for this.
> 
> > Of course this will have a major effect on the REST API, but from my point
> of view, these changes should be done rather sooner than later (before
> many 3rd party solutions are using Syncope).
> > Of course we could make sure that this new REST API could still be
> backwards compatible, but I would rather deliver the new REST API with
> sufficient documentation within the next major release and not clutter the
> new interfaces with backwards-compatible code.
> 
> I wouldn't care about backward compatibility: we are making this change for
> a new major version, and the new client classes (mentioned above) should
> make things really smooth.
> 
> Regards.
> 
> --
> Francesco Chicchiriccò
> 
> ASF Member, Apache Cocoon PMC and Apache Syncope PPMC Member
> http://people.apache.org/~ilgrosso/

Reply via email to