forked from DSpace/DSpace
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Se implementaron los nuevos conectores REST a Drupal 9 #101
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-DSpace#7051 Comienzo con la implementación de los conectores REST a Drupal Creo la clase RestAuthorityConnector que se encarga de realiar una consulta http a drupal y devolverla en formato JSON Tambien la clase RestAuthorityProvider, que implementa la interfaz ChoiceAuthority, y que a partir de la respuesta JSON de RestAuthorityConnector, extrae los correspondientes Choices de la respuesta e implementa los metodos getMatches, getBestMatch y getLabel -DSpace#7051 Hago abstracta la clase RestAuthorityProvider y alguno de sus métodos para que luego los verdaderos conectores de los distintos metadatos puedan heredar de ella Falta crear los conectores para cada uno de los metadatos que se desee controlar por autoridad -DSpace#7051 Refactoring del provider de autoridades REST RestAuthorityProvider. Ahora los solo se delega a las clases hijas el metodo extractChoice, el resto o es private o es final El path del endpoint de cada conector ahora se obtiene desde la configuracion Los campos de id y de filtro de texto se pueden tambien opcionalmente setear desde la configuracion, si no se setean usan valores por defecto Ahora para implementar un conector REST de autoridades solo se debe crear una clase que herede de RestAuthorityProvider y que implemente el metodo extractChoice, el cual se encarga de crear un Choice partir de una de las respuestas devueltas por la API REST -DSpace#7051 Agrego el conector REST a drupal TaxonomiesRestAuthorityProvider el cual a partir de lo devuelto por la api de drupal arma los choices como lo esperan los metadatos correspondientes a las taxonomias (materias, ford, materias cic, etc) Agrego un archivo de configuracion para test Copiar y pegar en el local_custom.cfg para probar la configuracion... Agrego los conectores de Instituciones y de Autores. Además agrego algunos propiedades más, por ejemplo: 1) choices.authKeyPrefix.cic.institucionOrigen = http://digital.cic.gba.gob.ar/auth/node/ 2) choices.fatherAuth.cic.institucionOrigen = father_id 3) choices.fatherAuthValue.cic.institucionOrigen = 243187 El "choices.authKeyPrefix" sirve para indicar el prefijo del auth_key. Como el auth_key es un campo que se genera on-the-fly desde la API REST, entonces es necesario hacer un reemplazo de este prefijo al momento de consultar a Drupal por el "auth_key". El "choices.fatherAuth" sirve para indicar a Drupal cual es el parametro a utilizar para decirle "quiero los hijos de tal institución". A su vez, el "choices.fatherAuthValue" sirve para indicar el ID del padre. Agrego el conector para revistas. -DSpace#7051 Cambio rutas de los endpoints para los conectores rest de materias y keywords para que utilicen las nuevas rutas definidas en la vistas de drupal Ahora para materias se utiliza el endpoint /fos en vez de /subjects Para keywords ahora es /decs Agrego filiacion entre parentesis para el conector de Autores. Ademas modifico un poco los métodos para poder identificar cuando un request viene por el auth_key (es decir, por ID), y de esta forma evitar que cuando se indexen en Discovery los metadatos relativos a AUTORES e INSTITUCIONES no se indexen los valores entre paréntesis. -DSpace#7051 Modifico conector de autoridades rest de autores para que ahora se muestre la filiacion entre parentesis al momento de la busqueda en el submission -DSpace#7051 Elimino el local_custom_test.cfg y paso todo lo de ahi al local_custom Los cambios ya estan probados, elimino la config de test y paso los cambios a la verdadera configuracion Todavia no elimino los conectores Sparql por las dudas -DSpace#7051 Seteo la url del drupal de autoridades para los conectores rest Es la misma que antes, la de los conectores sparql
Además configuro algunas pocas configuraciones para los conectores de autores. Si se quiere probar se puede utilizar el rest de drupalcic.
…ades para que usen los conectores REST. Las de autores ya estaban, agregué las de instituciones y taxonomias Elimino tambien las configuraciones sedici.choices.jearaquias.* que no se usaban mas
En SEDICI no es necesario implementar un conector de autoridades para revistas porque las revistas no estan controladas por autoridad
Lo probe y funciona todo bien, como es esperado. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Habría que probar los conectores al Drupal de vocabularios en SEDICI. Ver http://trac.prebi.unlp.edu.ar/issues/7107