Paramétrage et utilisation des Webservices dans PMBConfigurer un serveur OAI dans PMB > Déclarer une réécriture d'URL
page précédentepage suivante

Déclarer une réécriture d'URL

Réécriture d'URL
URL Rewriting

Lors d'un accès à un serveur web, la réécriture d'URL consiste à transformer une URL demandée par un client en une autre URL correspondante sur le serveur. Cette technique est utile pour simplifier l'écriture d'une URL ou de transformer des chemins virtuels en paramètres passés au serveur.

La réécriture d'URL permet à un client de demander l'adresse suivante :

http://www.sigb.net/pmbservices/formation

Qui sera transformée pour le serveur en   :

http://www.sigb.net/page.php?rubrique=pmbservices&sous_rubrique=formation

Les paramètres d'une URL

Les paramètres d'une URL sont les information passées après le caractère ? dans une URL. Ce sont généralement un ensemble de couples nom=valeur séparés par le caractère &.

Dans l'exemple ci-dessus, les paramètres sont :

rubrique=pmbservices&sous_rubrique=formation

Composés de deux couples (un couple est la déclaration d'un paramètre) :

  • rubrique = pmbservices

et

  • sous_rubrique = formation

Lors de la réécriture d'URL, on peut demander la copie d'une certain nombre de paramètres dans l'adresse du serveur.

L'adresse http://www.sigb.net/pmbservices/formation?chapitre=2

Sera transformé en pour le serveur en :

http://www.sigb.net/page.php?rubrique=pmbservices&sous_rubrique=formation&chapitre=2

Le paramètre chapitre a été copié dans l'URL du serveur.

La réécriture d'URL se paramètre sur le serveur web et dépend du type de serveur (Apache, IIS, etc.). Lorsque le serveur web reçoit une URL, il regarde si il y a une règle de transformation déclarée et si c'est le cas, il la transforme.

Le problème

Dans PMB, un seul script connector_out.php gère l'appel à toutes les sources. Ce script est dans le dossier pmb/ws. Pour identifier la source demandée, le client doit passer le paramètre source_id=numero_de_la_source. La réponse dépend bien sûr du connecteur (et donc du protocole du service demandé).

En résumé, un appel à un connecteur se fait toujours par un URL du type : http://serveur/pmb/ws/connector_out.php?source_id=numero.

Le problème est que dans certains protocoles - dont l'OAI -, l'URL appelée ne doit pas avoir d'autres paramètres que ceux autorisés par le protocole lui même. C'est à dire que le paramètre source_id n'est pas autorisé dans l'URL.

La solution

La solution consiste donc à réécrire l'URL afin que pour le protocole, l'URL demandée par le client soit conforme, et pour le serveur que ce soit bien une adresse du type http://serveur/pmb/ws/connector_out.php?source_id=numero qui soit appelée.

Déclarer une réécriture d'URL pour Apache

Réécriture simple

Nous allons réécrire l'URL du serveur OAI déclaré par la source 1 (remplacez le 1 par l'identifiant de votre source OAI si ce n'est pas le même) : http://serveur/pmb/ws/connector_out.php?source_id=1 en http://serveur/pmb/ws/PMBOAI. Le mot serveur dans l'adresse doit être bien sûr remplacé par le nom de votre serveur PMB.

Dans le sous répertoire ws de pmb, créez un fichier .htaccess

Ce fichier doit contenir :

RewriteEngine on

RewriteRule ^PMBOAI /pmb/ws/connector_out.php?source_id=1 [L,QSA]

Compléments...

Appel de la nouvelle adresse

Vous pouvez appeler l'URL http://serveur/pmb/ws/PMBOAI?verb=Identify dans votre navigateur, si la redirection fonctionne, vous devez obtenir la même page que lors de la création de la source. Dans cette page, les liens Identify, ListRecords, ListSets, ListMetadataFormats, ListIdentifiers doivent fonctionner.

Par exemple, en cliquant sur le lien ListSets, vous devez retrouver les sets sélectionnés dans la source.

Réécriture généralisée

Après avoir réécrit l'URL d'appel pour une source en particulier, nous allons faire la même chose pour réécrire l'adresse quelque soit la source. L'idée de base est d'appeler les webservices en passant l'identifiant de la source dans l'adresse virtuelle, et de demander au serveur web de détecter cet identifiant pour le transformer en paramètre.

Dans le sous répertoire ws de pmb, créez un fichier .htaccess (ou modifiez le)

Ce fichier doit contenir :

RewriteEngine on

RewriteRule ^PMBWs_(\d+) /pmb/ws/connector_out.php?source_id=$1 [L,QSA]

Explication...

Appel de la nouvelle adresse

Vous pouvez appeler l'URL http://serveur/pmb/ws/PMBWs_1?verb=Identify dans votre navigateur, si la redirection fonctionne, vous devez obtenir la même page que lors de la création de la source. Dans cette page, les liens Identify, ListRecords, ListSets, ListMetadataFormats, ListIdentifiers doivent fonctionner.

Par exemple, en cliquant sur le lien ListSets, vous devez retrouver les sets sélectionnés dans la source.

page précédentepage suivante
A propos...PMB ServicesRéalisé avec Scenari