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.

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.
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.

What are your thoughts?

Best regards
Jan

Reply via email to