Implémentation d'adaptateurs HTTP JavaScript

Apprenez à développer un adaptateur HTTP JavaScript.

Avant de commencer

Cet exemple montre comment implémenter un adaptateur qui se connecte à des services HTTP de backend en utilisant les installations de connectivité fournies avec MobileFirst Server. Vous pouvez en apprendre plus sur la connectivité dans Structure de l'adaptateur JavaScript et Elément connectionPolicy d'adaptateur HTTP.

Les adaptateurs HTTP fonctionnent avec des services basés sur RESTful et SOAP, et peuvent lire des sources HTTP structurées comme les flux RSS.

Vous pouvez facilement personnaliser les adaptateurs HTTP avec un simple code JavaScript côté serveur. Par exemple, vous pouvez configurer le filtrage côté serveur si nécessaire. Les données récupérées peuvent se trouver dans des fichiers XML, HTML, JSON, ou au format texte en clair.

L'implémentation d'un adaptateur JavaScript se fait en trois temps :

  • Configuration du fichier descripteur adapter.xml :
    • Dans l'élément connectionPolicy, vous déclarez  les paramètres qui se rapportent à la connexion HTTP sur laquelle l'adaptateur se connecte. Pour plus d'informations, voir Elément connectionPolicy d'adaptateur HTTP.
    • Vous déclarez chaque procédure que vous implémentez dans les fichiers source JavaScript, en utilisant un élément procedure. Pour plus d'informations, consultez Elément de procédure d'adaptateur HTTP.
  • Implémentation de la logique de procédure dans les fichiers source JavaScript.
  • (Facultatif) Utilisation de XSL pour filtrer les enregistrements et les champs reçus.

Cette page indique également comment appeler un service SOAP dans l'adaptateur HTTP.

Configuration du fichier descripteur adapter.xml

Procédure

  1. Dans le fichier descripteur de l'adaptateur, configurez les paramètres suivants dans l'élément connectivity :
    • Définissez le protocole sur http ou https.
    • Définissez le domaine HTTP à la partie domaine de l'URL HTTP.
    • Définissez le port TCP.
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <mfp:adapter name="JavaScriptHTTP"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:mfp="http://www.ibm.com/mfp/integration"
        xmlns:http="http://www.ibm.com/mfp/integration/http">
    
        <displayName>JavaScriptHTTP</displayName>
        <description>JavaScriptHTTP</description>
        <connectivity>
            <connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
                <protocol>https</protocol>
                <domain>mobilefirstplatform.ibmcloud.com</domain>
                <port>443</port>
                <connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
                <socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
                <maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
            </connectionPolicy>
        </connectivity>
    
    </mfp:adapter>
  2. Déclarez une procédure getFeed pour obtenir un flux RSS et une procédure getFeedFiltered pour spécifier les options de transformation XSL sur les données du flux.
    Remarque : Le nom de la procédure que vous déclarez dans le fichier descripteur de l'adaptateur doit être identique au nom que vous utilisez lors de l'implémentation de la procédure elle-même.
    <procedure name="getFeed"/>
    <procedure name="getFeedFiltered"/>

Implémentation de procédure JavaScript

Avant de commencer

Une URL de service est utilisée pour les appels de procédure. Certaines parties de l'URL sont constantes. Par exemple, http://example.com/. D'autres parties de l'adresse URL peuvent être paramétrées, c'est-à-dire substituées à l'exécution par des valeurs de paramètre fournies à la procédure MobileFirst. Les parties d'adresse URL suivantes peuvent être paramétrées :
  • Eléments de chemin
  • Paramètres de la chaîne de requête
  • Fragments

Pour plus d'informations sur les options d'adaptateur avancées, tels que les cookies, les en-têtes, et le codage, consultez Elément connectionPolicy d'adaptateur HTTP.

Procédure

Appelez une requête HTTP à l'aide de la fonction MFP.Server.invokeHttp. Notez que MFP.Server.invokeHttp requiert un objet de paramètre d'entrée qui doit spécifier les options suivantes :
  • La méthode HTTP GET, POST, PUT ou DELETE
  • Le type de contenu renvoyé : XML, JSON, HTML ou plain
  • Le chemin d'accès au service
  • Les paramètres de requête (facultatif)
  • Le corps de demande (facultatif)
  • Le type de transformation (facultatif)
Pour la liste complète des options, voir la fonction MFP.Server.invokeHttp.
function getFeed() {
  var input = {
      method : 'get',
      returnedContentType : 'xml',
      path : "feed.xml"
  };

  return MFP.Server.invokeHttp(input);
}

Filtrage de transformation XSL

Avant de commencer

Vous pouvez également appliquer une transformation XSL aux données reçues. Par exemple, pour filtrer les données du flux.

Procédure

  1. Créez un fichier filtered.xsl au même emplacement que le fichier d'implémentation JavaScript.
  2. Spécifiez les options de transformation dans les paramètres d'entrée de l'appel de procédure getFeedFiltered.
    function getFeedFiltered() {
    
      var input = {
          method : 'get',
          returnedContentType : 'xml',
          path : "feed.xml",
          transformation : {
            type : 'xslFile',
            xslFile : 'filtered.xsl'
          }
      };
    
      return MFP.Server.invokeHttp(input);
    }

Création d'une demande de service SOAP

Avant de commencer

Vous pouvez utiliser la fonction MFP.Server.invokeHttp pour créer une enveloppe SOAP.

Procédure

  1. Pour appeler un service SOAP dans un adaptateur HTTP JavaScript, codez l'enveloppe XML SOAP dans le corps de la requête en utilisant ECMAScript pour XML (E4X).
    var request =
            <soap:Envelope
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                   <soap:Body>
                       <GetCitiesByCountry xmlns="http://www.webserviceX.NET">
                            <CountryName>{countryName}</CountryName>
                       </GetCitiesByCountry>
                   </soap:Body>
            </soap:Envelope>;
  2. Utilisez la fonction MFP.Server.invokeHttp (options) pour appeler une demande pour un service SOAP. L'argument options est un objet JSON qui doit inclure les propriétés suivantes :
    • Une propriété method : généralement POST
    • Une propriété returnedContentType : généralement XML
    • Une propriété path : un chemin d'accès de service
    • Une propriété body : content (SOAP XML en tant que chaîne) et contentType
    var input = {
        method : 'post',
        returnedContentType : 'xml',
        path: '/globalweather.asmx',
        body: {
            content: request.toString(),
            contentType: 'text/xml; charset=utf-8'
        }
    };
    
    var result = MFP.Server.invokeHttp(input);