Exemple : configurer une source de recherche GitHub

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 1 minute de lecture
  • Configurez une source de recherche avancée qui interroge les données d’un site Web externe.

    Avant de commencer

    Rôle requis : aucun

    Pour créer une source de recherche avancée, vous devez disposer d’un accès authentifié à un site Web externe via une API REST et de connaissances de base d’AngularJS.

    Procédure

    1. Dans l’interface utilisateur de la plateforme, accédez à Portail de services > Portails et sélectionnez le portail auquel vous souhaitez ajouter des sources de recherche.
    2. Cliquez sur Nouveau dans la liste connexe Sources de recherche.
    3. Créez un nom et un ID pour la source de recherche.
      L’ID doit être unique et ne doit pas inclure d’espaces ou de caractères spéciaux.
    4. Dans l’onglet Source de données , cochez la case Est une source scriptée .
    5. Ajoutez du contenu au champ de script d’extraction de données.

      Pour configurer une intégration GitHub :

      (function(query) {
          var results = [];
          /* Calculate your results here. */
          var url = "https://api.github.com/search/repositories?q=" + encodeURI(query);
          var ws = new GlideHTTPRequest(url);
          ws.setBasicAuth("YOUR_USERNAME_HERE", "YOUR_PASSWORD_HERE");
          var jsonOutput = ws.get();
          if (jsonOutput) {
              var response = new JSON().decode(jsonOutput.getBody());
              results = response.items;
              results.forEach(function(result) {
                  result.url = result.svn_url;
                  result.target = "_blank";
                  result.primary = result.full_name;
              });
          }
      
          return results;
      })(query);
      Remarque :
      Dans l’exemple précédent, ws.setBasicAuth nécessite un nom d’utilisateur et un mot de passe pour la ressource externe. Pour plus d’informations, consultez GlideHTTPRequest - Global.
    6. Utilisez le modèle de page de recherche pour personnaliser l’affichage des résultats de recherche.
      <div>
        <div class="pull-right">
          <strong>{{item.language}}</strong>
          <a ng-href="{{item.svn_url}}/stargazers" target="_blank" class="m-l-sm"><span class="fa fa-star m-r-xs"></span>{{item.stargazers_count}}</a>
          <a ng-href="{{item.svn_url}}/network" target="_blank" class="m-l-sm"><span class="fa fa-code-fork m-r-xs"></span>{{item.forks}}</a>
        </div>
        <a ng-href="{{item.svn_url}}" target="_blank" class="h4 text-primary m-b-sm block">
          <span ng-bind-html="highlight(item.full_name, data.q)"></span>
        </a>
        <p>{{item.description}}</p>
        <p>Updated <sn-time-ago timestamp="item.updated_at"></sn-time-ago> ago</p>
      </div>