Hello Tim, Aaron and others, I will first answer the questions:
> (1) We noticed that the REST API documentation on the wiki currently > doesn't mention anything about Authentication. How is > authentication expected to be handled (or being handled)? Is it > just Basic HTTP Auth? Is there any extra configuration/setup that > should be documented on the wiki page? It might be good to document > how authentication is expected to be handled, and anything else > worth knowing in this area. Yes you are right, it is not mentioned there. Currently the authentication is done simply by providing the user name and password as request parameters (e.g. GET /rest/items/1.json?user=xxx&pass=xxx). If there is a a need within community for other mechanism I will gladly extend the code to support it. Also regarding comments on the wiki, I have took them into account and so it should be ok. > (2) We also noticed there isn't mention of Authorization in the wiki > documentation. From looking at the code, it looks like you are > handling Authorization by letting the dspace-api handle it (which is > perfectly fine, in my opinion). You then catch any > AuthorizationExceptions thrown and return a 401 or 403 response, > depending on the situation. (Please correct me if I'm wrong about > anything I've stated.) It just might be good to also document that > more clearly, so that everyone is aware how Authorization is being > handled and what happens when you are not authorized to make a > change or access a particular resource. Yes, that it correct, the authorization is forwarded to the underlying structures itself and the errors are catched and returned to the user. In the most cases the application provides an message about failure to process a request - in the case of unsuccessful Authorization or any other case. Ofcourse, the code returns descriptions of the errors in the form provided by the underlying libraries. This means, if related components do not return exact description, nor the rest api can. > (3) Finally, we were all just curious how "ready" both you and Aaron > feel this code is. Do you both feel the REST API will be ready for > at least a "beta" level release after GSoC (i.e. do you feel it > should be considered for public release in DSpace 1.7)? Or are > there more outstanding issues/concerns that you each feel need > resolution (and if so, what are they)? The developers are > interested in hearing your thoughts on the work, and whether there > are outstanding issues/concerns you may have in making this work > more broadly available. (Bojan, any concerns/issues you mention > will not hurt your GSoC final grade. We are just looking to better > understand to current status of the code, and whether there is still > more that needs working on before it is "ready for release") Ok, I will comment this from my perspective. First, the wiki is not currently following the status of the software development. As I have been working on the particular aspects of the code, updating the wiki after each change would produce unnecessary context switching and overhead, thus causing inefficient use of the time resources available. Instead the wiki (in this phase) has been used mostly for a draft proposal how all should look like e.g. the organization of the endpoints, functions covered, the handling/manipulation of resources and so. Now that some questions were raised, I will update the wiki with the information requested and will also change it to better resemble current status of the project. E.g. some methods have been changed, especially related to creation of new resources (update/getting hasn't been changed much). For the issues/concerns, this time I have been focused more on the following aspects: - decoupling parts of the code and moving the direct handling routines (like accessing the resources directly) from entity providers' level to entities; this should make easier support among different versions of DSpace and make easier transition to new storage api - taking into account the user need to manipulate with the resources, e.g. create new communities, update/create items and so From this point, one issue may be the fact that implementation of all dspace-api -> dspace-rest mappings and support for all those functions could require too much effort and time, while many of those functions would not be used by most of the users. Instead in this wiki I have drafted/proposed the functions (endpoints/features) which would have the highest priority to implement and thus represent this first official REST support for the DSpace. For this first (version) I think it is ok, and then we may see user/developer feedback and implement other functions. Also from the last year's project I already got some feedback so it was good starting point for me. Other issue for me was the introduction of other new projects, e.g. Backporting of DSpace 2 Storage Services and Semantic Content Repository. Current version of the code uses DSpace1 approach and libraries and once other implementations are ready we can think making this code dependent/related to them. For the software stability etc, I must admit that I haven't had much time to test functionality/correctness of the output results. While I tested each feature manually during the implementation, I suppose there will be many small bugs to correct. One repository of say 100 or so items could be good starting point for testing. It would be good if someone could help me to get such repository, then I could write automatic tests (or use other testing methodology) and this way many of those small bugs could be found prior to release. And generally for the testing of the software I think also that community should decide up to which extent we should test the code before going into official release. As October 22rd is the freezing point, can 5-6 weeks be enough for us all to check the code and correct the errors found? Other issue, timeline, I think not everything will be finished up to the official end of GSoC. However I will also continue to work on it after GSoC end and I expect it would require a few weeks more before it could go to the testing. I would say maybe 2-3 weeks or before mid-September. This would give some 6 weeks for testing and fixing. What do you think, is it enough time for inclusion? I would like this package to be finished and ready for 1.7 release so will try to invest reasonable effort from my side in order to make it so. Also as I said before I plan to support this code after (possible) inclusion in the release so if this produced some concerns or reserves I just wanted to let you know it. Regards Bojan
------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________ Dspace-devel mailing list Dspace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dspace-devel