Jump to content
edionas

Exportação de dados do portal governo transparente

Recommended Posts

Bom dia
a tempos tenho tentando exportar dados deste portal (https://www.governotransparente.com.br/transparencia/api/v1/json/remessas/1194487) para uma tabela em HTML, pois preciso exibir os dados sem necessidade de ter que ir para uma pagina externa do site.

Share this post


Link to post
Share on other sites

Desculpa, eu não entendi bem a pergunta mas acredito que você queira algo como...

 

<style>
  .wrapper .table {
    border-collapse: collapse;
  }

  .wrapper .table .table-header th {
    font-weight: bold;
    border: 1px solid silver;
    background: #eee;
  }

  .wrapper .table .table-body td {
    border: 1px solid silver;
  }
</style>

<div id="wrapper" class="wrapper"></div>

<!-- estes scripts são polifills para que as Promises (then, catch) e o método fetch funcionem em navegadores mais antigos -->
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fetch/3.0.0/fetch.min.js"></script>

<script>
(function () { // utilizado para isolar as variáveis e não causar problemas de segurança futuros
  var url = 'https://www.governotransparente.com.br/transparencia/api/v1/json/remessas/1194487';
  var resultWrapper = document.getElementById('wrapper');

  // aqui fica a requisição e as ações sobre cada uma delas
  fetch(url)
    .then(checkServerResponse)
    .then(toJSON)
    .then(createTable)
    ['catch'](showErrorMessage); // caso aconteça algum erro em qualquer uma das ações anteriores, faça o tratamento de erros ;-)

  // tratamento de erros
  function showErrorMessage(err) {
    resultWrapper.innerHTML = '<pre>Erro:\r' + err.toString() + '</pre>';
  }

  // verifica se a resposta do servidor foi um sucesso
  function checkServerResponse(res) {
    if (res.ok) {
      return res;
    }
    throw new Error('Unable to fetch data from server. Status: ' + res.status);
  }

  // tenta converter a resposta do servidor em objeto json manipulável ao invés de texto puro
  function toJSON(res) {
    return res.json();
  }

  // converte os dados em tabela e insere no resultWrapper
  function createTable(data) {
    var heads = Object.keys(data).map(function (item) {
      return '<th>' + item + '</th>';
    }).join('');

    var contents = Object.values(data).map(function (item) {
      return '<td>' + item + '</td>';
    }).join('');

    resultWrapper.innerHTML = [
      '<table class="table">',
        '<thead class="table-header">',
          '<tr>',
              heads,
          '</tr>',
        '</thead>',
        '<tbody class="table-body">',
          '<tr>',
              contents,
          '</tr>',
        '</tbody>',
      '</table>',
    ].join('');
  }
});
</script>

Você pode ver o código funcionando aqui: https://jsfiddle.net/gkezhv85/5/

 

Tomei a liberdade de fazer um código mais moderno, não utilizando jQuery e utilizando funcionalidades que os navegadores mais modernos já utilizam como o fetch e as Promises, o que faz o código ficar, na miha opinião, mais organizado, já que cada ação fica em uma função isolada.

 

Também optei por fazer dessa maneira para instigar os estudos do pessoal aqui no fórum... espero ter ajudado, qualquer coisa dá um grito :-D

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Claudia França
      Prezados preciso de uma ajudar para entender o que mudar e fazer a integracao com base no link https://developercielo.github.io/manual/cielo-ecommerce#visacheckout   ( padrão cielo)
      Eu gostaria de entender se so preciso mudar o nome da variáveis  para fazer com que a cielo receba a informação da transação certa. Como faço para que as requisições sejam enviadas no padrão da Cielo. ? 
       
      No php imagem, está o que eu tenho no ambiente.
      no link como a cielo quer.
       
       


    • By Carlos Ramos Web
      Olá, pessoal.
      Estou criando um sistema paralelo ao wordpress contudo buscando as informações do banco de dados wp.
      Me deparei com uma string em JSON vindo da tabela wp_usermeta mais preciso no campo meta_value.
       
      a:13:{s:3:"cpf";s:11:"97277754115";s:6:"adocao";s:1:"4";s:11:"codigo_inep";s:8:"52037983";s:11:"nome_escola";s:29:"Colégio Externato São José";s:13:"numero_escola";s:3:"221";s:11:"escola_cnpj";s:14:"33707746000512";s:3:"cep";s:8:"74120180";s:8:"telefone";s:11:"62985286122";s:18:"data_de_nascimento";s:10:"25/05/1982";s:6:"perfil";s:10:"Supervisor";s:8:"segmento";a:1:{i:0;s:3:"EF1";}s:9:"ano_serie";a:2:{i:0;s:4:"4EF1";i:1;s:4:"5EF1";}s:11:"disciplinas";a:11:{i:0;s:3:"ART";i:1;s:3:"ING";i:2;s:3:"ENS";i:3;s:3:"POR";i:4;s:3:"MAT";i:5;s:3:"HIS";i:6;s:3:"GEO";i:7;s:4:"CI�";i:8;s:3:"PRO";i:9;s:3:"GRA";i:10;s:3:"LIT";}}
       
      sendo que preciso pegar o nome da escola (nome_escola) ou o número de CPF (cpf).
      Como fazer para aparecer convertido como array em php, tipo assim:
       
      array("cpf" => "97277754115", "nome_escola" => "Colégio Externato São José");
    • By Carlos Ramos Web
      Olá, pessoal.
      Estou criando um sistema paralelo ao wordpress contudo buscando as informações do banco de dados wp.
      Me deparei com uma string em JSON vindo da tabela wp_usermeta mais preciso no campo meta_value.
       
      a:13:{s:3:"cpf";s:11:"97277754115";s:6:"adocao";s:1:"4";s:11:"codigo_inep";s:8:"52037983";s:11:"nome_escola";s:29:"Colégio Externato São José";s:13:"numero_escola";s:3:"221";s:11:"escola_cnpj";s:14:"33707746000512";s:3:"cep";s:8:"74120180";s:8:"telefone";s:11:"62985286122";s:18:"data_de_nascimento";s:10:"25/05/1982";s:6:"perfil";s:10:"Supervisor";s:8:"segmento";a:1:{i:0;s:3:"EF1";}s:9:"ano_serie";a:2:{i:0;s:4:"4EF1";i:1;s:4:"5EF1";}s:11:"disciplinas";a:11:{i:0;s:3:"ART";i:1;s:3:"ING";i:2;s:3:"ENS";i:3;s:3:"POR";i:4;s:3:"MAT";i:5;s:3:"HIS";i:6;s:3:"GEO";i:7;s:4:"CI�";i:8;s:3:"PRO";i:9;s:3:"GRA";i:10;s:3:"LIT";}}
       
      sendo que preciso pegar o nome da escola (nome_escola) ou o número de CPF (cpf).
      Como fazer para aparecer convertido como array em php, tipo assim:
       
      array("cpf" => "97277754115", "nome_escola" => "Colégio Externato São José");
       
    • By alh
      Tenho uma requisição em ajax!
      O que está acontecendo de errado pois não estou sendo redirecionado na funçao que estou executando no php pelo ajax.
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript"> //EFETUAR LOGIN function efetuarLogin() { var usuarioAcesso = $("#usuarioAcesso").val(); var senhaAcesso = $("#senhaAcesso").val(); var botao_acao = $("#tipo_login").val(); $.ajax({ type: "POST", url: "envia_assinatura.php", data: {'usuarioAcesso':usuarioAcesso,'senhaAcesso':senhaAcesso,'botao_acao':botao_acao}, dataType: "json", success: function(json){ alert('teste'); } }); }; </script> <div style="width:400px; float:left;"> <input type="text" name="usuarioAcesso" id="usuarioAcesso"> <input type="password" name="senhaAcesso" id="senhaAcesso"> <input type="submit" name="botao_login" id="botao_login" value="Login"> <input type="hidden" name="tipo_login" id="tipo_login" value="login"> <button class="btn-success" type="submit" onclick="efetuarLogin()" >LOGIN</button> </div>  
      A página "envia_assinatura.php"
      É um header para retornar a uma página:
      <?php header("location: teste"); ?>
    • By George Rewrited
      $data = file_get_contents("https://servicodados.ibge.gov.br/api/v1/localidades/estados"); echo "<pre>"; print ($data); echo "</pre>"; este código está me retornando isso:
      ����N�@�_��5&*�;(�h�;��J'0 ̐i�h|㚝o�sP�9�%��]Ӝ����so�ޘLY����2�X����u��k��*-��$�ʈ�$���������䂽�w�s��N6��I�q�5�jE�'��O�|Cr�[|ϩ⁓�d�O�%T���x3��j���9�\*OK�A5��'dH-�O]�BV��7Y �����-v-�������Xs.�K�"�F*�T���_�i��F���d]�XE����M+!|����f�����������6>�8�r=�e͖l����D0.�.� vU���q��1�N8�6���\܎z���� L�����'%�i��hs�z�n� ���}��IyjT���$sĮ fs���-� �����m�
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.