Accueil > Développement d'applications SDX > Les API > L'API URL


Présentation de l'API URL

Dernière modification : 2001/11/02 15:07:13     Contact : Martin Sévigny

Introduction

L'API URL est celle qui expose un certain nombre de services SDX depuis une adresse URL. Que signifie exactement cette phrase ?

Essentiellement, elle signifie qu'en atteignant une adresse URL précise, avec des paramètres, on peut obtenir de l'information dynamique depuis une installation SDX. Cette méthode est puissante car elle permet à la fois d'inclure ces informations dans des transformations XSLT mais aussi d'interroger un serveur SDX depuis une autre application sur le Web, y compris un navigateur.

On peut faire l'essai avec cette adresse et votre navigateur Web :

http://sdx.culture.fr/sdx/servlets/simplesearch?db=sdxdoc&q=api+url

Au moment d'écrire ces lignes, la page affichée est celle-ci :

 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <sdx:results currentPage="1" end="2" id="" nb="2"
     nbPages="1" start="1" xmlns:sdx="http://www.culture.gouv.fr/ns/sdx/sdx">
  <sdx:query luceneQuery="fulltext:formation" text="formation"
     type="simple" xmlns:sdx="http://www.culture.gouv.fr/ns/sdx/sdx" />
  <sdx:sort />
 <sdx:result nextDocument="f_developpement" no="1" pctScore="100" score="0.21544635">
  <sdx:field indexed="true" name="sdxindexed" tokenized="false">true</sdx:field>
  <sdx:field indexed="true" name="sdxmodificationdate" tokenized="false">2001/05/20 07:22:45</sdx:field>
  <sdx:field indexed="true" name="sdxcreationdate" tokenized="false">2001/05/20 07:22:45</sdx:field>
  <sdx:field indexed="true" name="sdxowner" tokenized="false">admin</sdx:field>
  <sdx:field indexed="true" name="sdxdocid" tokenized="false">f_xml</sdx:field>
  <sdx:field indexed="true" name="sdxall" tokenized="false">1</sdx:field>
  <sdx:field indexed="true" name="title" tokenized="true">XML</sdx:field>
  </sdx:result>
 <sdx:result no="2" pctScore="93" previousDocument="f_xml" score="0.20108326">
  <sdx:field indexed="true" name="sdxindexed" tokenized="false">true</sdx:field>
  <sdx:field indexed="true" name="sdxmodificationdate" tokenized="false">2001/05/20 07:22:45</sdx:field>
  <sdx:field indexed="true" name="sdxcreationdate" tokenized="false">2001/05/20 07:22:45</sdx:field>
  <sdx:field indexed="true" name="sdxowner" tokenized="false">admin</sdx:field>
  <sdx:field indexed="true" name="sdxdocid" tokenized="false">f_developpement</sdx:field>
  <sdx:field indexed="true" name="sdxall" tokenized="false">1</sdx:field>
  <sdx:field indexed="true" name="title" tokenized="true">Développement d'applications</sdx:field>
 </sdx:result>
 </sdx:results>

Architecture

L'architecture derrière cette API est simple. En effet, une série de servlets Java, partageant le même contexte de servlets que Cocoon et que les programmes Java de SDX, permettent de répondre aux URL et de retourner des résultats pertinents.

L'URL exacte de ces servlets dépend de l'installation SDX effectuée. Normalement, elles sont accessibles depuis l'URL servlets/ ajoutée à l'URL de base de SDX, par exemple http://sdx.culture.fr/sdx/servlets/ sur le serveur de la culture.

Par ailleurs, lorsque vous transformez le résultat d'une page XSP destinée à SDX, c'est-à-dire dont l'élément supérieur est sdx:page, l'URL de base des servlets SDX est passée dans l'attribut url de l'élément sdx:servlets, comme ceci :

 <sdx:environment>
   <sdx:servlets url="http://localhost/sdx/servlets"/>
	  ...
</sdx:environment>

Vous pouvez donc y avoir accès dans une feuille de style XSLT à l'aide d'une construction comme cell-ci :

<xsl:variable
  name="servletsUrl"
  select="string(/sdx:document/sdx:environment/sdx:servlets/@url)"/>

Si, par la suite, vous désirez inclure un document SDX depuis une transformation XSLT, vous pouvez faire, par exemple :

<xsl:apply-templates select="document(concat($sUrl, 'get?db=sdxdoc&amp;id=tdm'))"/>