Exemplo: configurar uma origem de pesquisa do GitHub

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 1 min. de leitura
  • Configure uma origem de pesquisa avançada que consulte dados de um site externo.

    Antes de Iniciar

    Função necessária: none

    Para criar uma origem de pesquisa avançada, você precisa de acesso autenticado a um site externo por meio de uma REST API e conhecimento básico de AngularJS.

    Procedimento

    1. Na IU da plataforma, navegue até Portal de serviços > Portais e selecione o portal ao qual você deseja adicionar fontes de pesquisa.
    2. Na lista relacionada Origens de pesquisa, clique em Novo.
    3. Crie um nome e ID para a fonte de pesquisa.
      O ID deve ser exclusivo e não deve incluir espaços ou caracteres especiais.
    4. Na guia Fonte de dados, marque a caixa de seleção É fonte de script.
    5. Adicione conteúdo ao campo de script de busca de dados.

      Para configurar uma integração do 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);
      Nota:
      No exemplo anterior, ws.setBasicAuth requer um nome de usuário e uma senha para o recurso externo. Para obter mais detalhes, consulte GlideHTTPRequest - Global.
    6. Use o modelo de página de pesquisa para personalizar a exibição dos resultados da pesquisa.
      <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>