1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Duvida Autenticação por Bearer Token em API

Discussão em 'Progress 4GL' iniciado por Luiz Vila, Fevereiro 1, 2023.

  1. Luiz Vila

    Luiz Vila Sem Pontuação

    Bom dia/Boa tarde/Boa noite, pessoal. Tudo certo?

    Estou mexendo com uma demanda aqui no Progress 4GL para fazer acesso à uma API. O problema é que todos os cantos que procuro sobre Bearer Token, que é a forma de autenticação requisitada pela API que irei acessar, não achei nenhum exemplo mais funcional.

    Achei um post muito bom sobre como consumir APIs no geral, mas não entendi a parte de autenticação, como ficaria para configurar para usar o modo de autenticação por Bearer Token e etc.

    Link do post que usei de base: https://kbase.com.br/2018/06/22/consumir-webservices-rest-utilizando-progress-yes-we-can/


    Espero que alguém possa me dar uma luz. Agradeço desde já.

    Luiz
  2. marcosvogomes

    marcosvogomes Sem Pontuação

    Boa tarde!

    Um exemplo em php!

    <?php

    $user = 'xxxx';
    $pass = 'xxxx';

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, 'http://192.168.100.16:8080/api/rest/v1/cstInvoicingData/501/10/0097691');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //curl_setopt($ch, CURLOPT_POST, 1);
    //curl_setopt($ch, CURLOPT_POSTFIELDS, $post);

    $headers = array();
    $headers[] = 'Authorization: Basic ' . base64_encode( $user . ':' . $pass );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

    $result = curl_exec($ch);
    if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
    }

    curl_close($ch);

    echo '<hr>';

    // retorno dos dados
    $string = json_decode($result);

    foreach ($string->_data->boletos as $i) {
    echo $i->CodigoBarras;
    echo '<br>';
    }
  3. Luiz Vila

    Luiz Vila Sem Pontuação

    Bom dia!

    Obrigado, mas creio que não resolva o meu b.o aqui. Eu preciso fazer esse acesso à API em Progress 4GL mesmo, usando o OpenEdge.

    De qualquer forma, valeu pela ajuda :)

    Luiz
  4. jdchaves

    jdchaves Membro Participativo

  5. Luiz Vila

    Luiz Vila Sem Pontuação

    Bom dia, man.

    Então, o complicado é que preciso fazer na linguagem progress4gl mesmo, não rola fazer em outra (como angular, por exemplo).

    Mas obrigado ainda assim pela ajuda :)
  6. Nudlew

    Nudlew Sem Pontuação

    Exemplo de como eu fiz em Progress4GL. No meu caso estava mandando um JSON para API.

    USING OpenEdge.Net.HTTP.*.
    USING OpenEdge.Net.HTTP.Lib.ClientLibraryBuilder.
    USING OpenEdge.Net.URI.
    USING OpenEdge.Core.String.
    USING Progress.Json.ObjectModel.*.
    USING Progress.Lang.Object.
    USING OpenEdge.Core.*.
    USING OpenEdge.Net.HTTP.Filter.Writer.* FROM PROPATH.
    USING OpenEdge.Net.HTTP.Filter.Payload.* FROM PROPATH.

    DEFINE VARIABLE cHeaders AS CHARACTER NO-UNDO.
    DEFINE VARIABLE oHeaders AS HttpHeader NO-UNDO.
    DEFINE VARIABLE oRequest AS IHttpRequest NO-UNDO.
    DEFINE VARIABLE oRequestBody AS STRING NO-UNDO.
    DEFINEVARIABLE cUrl AS CHARACTER NO-UNDO.

    cHeaders = 'Bearer Token'.

    ASSIGN oRequestBody = newSTRING(JsonString).

    ASSIGN cURL = 'sua API'.
    oHeaders = HttpHeaderBuilder:Build('Authorization'):Value(cHeaders):Header.

    ASSIGN oRequest = RequestBuilder: Post(cURL,oRequestBody)
    :AddHeader(oHeaders)
    :ContentType('application/json')
    :AcceptJson()
    :Request.

    Pronto, agora o Token está no Header. Só executar seu oRequest!

Compartilhe esta Página