Versão atual:

Protheus Api RestFull - Demora ao responder requisição

Olá a todos.

Levantei um serviço Rest e comecei a fazer alguns testes, porém está havendo uma demora na resposta quando o retorno começa a crescer. No primeiro exemplo abaixo a resposta do serviço é "instantânea". Já no segundo exemplo o retorno é imediato, porém o navegador continua processando. Quando integro a Api a uma aplicação web o segundo exemplo causa um erro devido a demora na resposta.

Exemplo 1: img1.png

Exemplo 2:

img2.png

Api Rest:

#Include 'Protheus.ch'
#Include 'restful.ch'

ser Function WEBSERVICE_TESTE()
Return

WSRESTFUL WEB_TESTE DESCRIPTION "Serviço REST para WEB_TESTE"
    WSDATA usuario         As String
    WSDATA senha        As String

    WSMETHOD GET login     DESCRIPTION "Retorna se o usuário é válido"     WSSYNTAX "/WEB_TESTE/login"     PATH "/login"

END WSRESTFUL

WSMETHOD GET login WSRECEIVE usuario,senha WSSERVICE WEB_TESTE
    Local cUsuario     := Self:usuario
    Local cSenha     := Self:senha
    Local aArea        := GetArea()
    Local cJson       := ""
    Local nRetorno     := ""
    Local jsonMont    := JsonObject():new()
    ::SetContentType("application/json")

    if(cUsuario =="teste")
        nRetorno := '{"id":1,"codigo":"12345"}'
    elseif(cUsuario =="teste1")
        nRetorno := '{"id":1,"codigo":"12345","nome":"teste1","cargo":"gerente", "cc":"999999999"}'
    endif

    jsonMont:fromJson(nRetorno)
    cJson := FWJsonSerialize(jsonMont)
    ::SetResponse(cJson)
    freeObj(jsonMont)
    RestArea(aArea)
Return(.T.)

Configuração do serviço:


[rest]
SourcePath=E:\TOTVS12\Microsiga\Protheus\apo\rest\rest
RootPath=E:\TOTVS12\Microsiga\protheus_data
StartPath=\system\
x2_path=
RpoDb=top
RpoLanguage=Portuguese
RpoVersion=120
LocalFiles=CTREE
Trace=0
localdbextension=.dtc
TopMemoMega=10
PictFormat=DEFAULT
DateFormat=DEFAULT
MAXLOCKS= 30000
SpecialKey=PRD

[TopConnect]
DataBase=MSSQL
Server=localhost
ALIAS=PRODUCAO
PROTHEUSONLY=0
driver=totvsapi.dll

[Drivers]
Active=TCP

[TCP]
TYPE=TCPIP
Port=2564


[General]
InstallPath=E:\TOTVS12\Protheus
ConsoleLog=0
CtreeMode=Server
MAXSTRINGSIZE=10
CtreePreImg=1 



[MAIL]
Protocol=POP3


[HTTP] 
ENABLE=1 
PORT=87 
PATH=C:\TOTVS 12\help-online 
ENVIRONMENT=rest

[GENTCPIP]
Enable=0


[HTTPV11] 
Enable=1 
Sockets=HTTPREST 

[HTTPREST] 
Port=8084
IPsBind=
URIs=URIHTML
SECURITY=0

[URIHTML]
URL=/html-protheus/rest
PrepareIn=01,00
Instances=1,1
CORSEnable=1
AllowOrigin=*

[ONSTART]
jobs=HTTPJOB
RefreshRate=120

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=rest

Versão (1):

Ver a versão formatada

Protheus Api RestFull - Demora ao responder requisição

Comentário

new question