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