Dica Exemplo de Webspeed acessando REST

Discussão em 'WebSpeed' iniciado por fdantas, Janeiro 14, 2022.

  1. fdantas

    fdantas Administrator Moderador

    Exemplo de Webspeed acessando REST

    Código:
        USING OpenEdge.Core.String.
        USING OpenEdge.Net.HTTP.ClientBuilder.
        USING OpenEdge.Net.HTTP.IHttpClient.
        USING OpenEdge.Net.HTTP.IHttpRequest.
        USING OpenEdge.Net.HTTP.RequestBuilder.
        USING OpenEdge.Net.HTTP.IHttpResponse.
        USING Progress.Json.ObjectModel.JsonObject.
        USING Progress.Lang.Object.
        USING OpenEdge.Net.HTTP.HttpHeader.
        USING OpenEdge.Net.HTTP.HttpHeaderBuilder.   
       
        DEFINE INPUT PARAMETER cCode AS CHARACTER.
        DEFINE INPUT PARAMETER cHostWebSpeed AS CHARACTER.
        DEFINE INPUT PARAMETER cHostLaravel AS CHARACTER.
       
       
        DEFINE OUTPUT PARAMETER cToken AS CHARACTER.
       
        LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - Pegar Token').
       
    
        DEFINE VARIABLE JsonString AS LONGCHAR NO-UNDO.
        DEFINE VARIABLE oHeaderContent  AS  HttpHeader           NO-UNDO.
        DEFINE VARIABLE oHeaderAccept  AS HttpHeader           NO-UNDO.
        DEFINE VARIABLE oHeaderAccept2  AS HttpHeader           NO-UNDO.   
       
        DEFINE VARIABLE oClient       AS IHttpClient   NO-UNDO.
        DEFINE VARIABLE oRequest      AS IHttpRequest  NO-UNDO.
        DEFINE VARIABLE oResponse     AS IHttpResponse NO-UNDO.
        DEFINE VARIABLE oPayload      AS JsonObject    NO-UNDO.
        DEFINE VARIABLE oEntity       AS Object        NO-UNDO.
        DEFINE VARIABLE oJsonObject   AS jsonObject    NO-UNDO.
        DEFINE VARIABLE myArray       AS CHARACTER     EXTENT NO-UNDO.
        DEFINE VARIABLE Json       AS CHARACTER   NO-UNDO.
       
        oClient = ClientBuilder:Build():Client.
       
       
        LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - CODE: ' +  cCode ).      
    
        ASSIGN oHeaderAccept  = HttpHeaderBuilder:Build("Content-Type"):Value("application/json"):Header.
    
        oPayload = NEW JsonObject().
        oPayload:Add('grant_type','authorization_code').
        oPayload:Add('client_id','xxxxxxxxxxxxxxxxxxxxxxxxx').
        oPayload:Add('client_secret','xxxxxxxxxxxxxxxxxxxxxxxxx').
        oPayload:Add('redirect_uri',cHostWebSpeed + '/scripts/cgiip.exe/WService=ws-service/index').
        //oPayload:Add('response','token').
        oPayload:Add('code',cCode).
    
        oRequest = RequestBuilder:Post(cHostLaravel + '/oauth/token', oPayload)
                   :addHeader(oHeaderAccept)
                   :AcceptJson()
                   :Request.
    
        ASSIGN oResponse = oClient:Execute(oRequest).
        ASSIGN oEntity = oResponse:Entity.
        ASSIGN oJsonObject = CAST(oEntity, JsonObject).
        oJsonObject:Write(JsonString, true).         
       
        ASSIGN JSon = JsonString.
       
        LOG-MANAGER:WRITE-MESSAGE(JSon).
       
        ASSIGN cToken = oJsonObject:getJsonText('access_token').   
       
        LOG-MANAGER:WRITE-MESSAGE('LoginPortalCode - TOKEN' + cToken).
       
        RETURN "OK".
        

Compartilhe esta Página