Skip to content
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
merged 4 commits into from
Sep 22, 2021

Conversation

PabloDeAlbu
Copy link
Member

@PabloDeAlbu PabloDeAlbu commented Sep 21, 2021

Habría que probar los conectores al Drupal de vocabularios en SEDICI. Ver http://trac.prebi.unlp.edu.ar/issues/7107

santit96 and others added 4 commits August 24, 2021 14:31
-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
@FacundoAdorno
Copy link

Lo probe y funciona todo bien, como es esperado.

@FacundoAdorno FacundoAdorno merged commit 5774cf3 into sedici_master Sep 22, 2021
@FacundoAdorno FacundoAdorno deleted the ticket#7107 branch September 22, 2021 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants