Implement new OPAC of SLUB Dresden
johan12345 opened this issue · 1 comments
They now use a new catalog which seems to be a custom development of the library themselves.
https://www.slub-dresden.de/recherche/slub-katalog-beta/#c36782
Would be great if you are interested in implementing support for the new OPAC. As far as I understand their documentation, this is basically a custom developed system, so the API implementation would be a separate one just for this library.
At opacapp/opacapp-config-files#4, @StefRe said he would be interested in trying to implement this. Feel free to ask here if you have questions! You can find some documentation on adding new libraries here and the libopac javadoc here.
I don't think the new OPAC has any public API (e.g. SRU or some JSON/XML format), but parsing the OPAC website looks doable. Basically it's a matter of finding the right HTTP requests to make (e.g. using the developer tools of your web browser) and then parsing the returned HTML using JSoup.
If we know that the API will only be used for one library, some things are slightly easier (e.g. we know that the choice of search fields will probably always stay the same, so the parseSearchFields
implementation doesn't need to actually parse the search form, but can instead return a fixed set of fields).
When you implement a new API, you should use the OkHttpBaseApi
as your base class - we are currently in the process of gradually moving all APIs away from the previously used Apache HTTP client (as it is has been deprecated on Android already for a couple of years now). This also allows you to take advantage of Stetho, which we have integrated in the app so that you are able to watch the HTTP requests it makes using chrome://inspect
and the responses to compare with the OPAC website.
I would also suggest using Kotlin (as I also did recently for the Koha API), but if you would like to use Java, that's also fine.