Versão atual:

Quero passar o objeto JSON de uma service para a minha controller, tentei `cResponseJson := SolicitacaoArmazem:get()` mas não deu certo.

Olá, boa tarde.

Estou aprendendo TLPP aqui e estou tentando jogar um JSON de uma Service para a minha Controller. Eu fiz da seguinte forma, primeiro, defini a Controller que criou a API com sucesso, e está recebendo os argumentos do REQUEST como deveria (Tirei partes que acho que não é necessário p/ entendimento):

Method get() as Logical Class SolicitacaoArmazemController

    // Setar Empresa e Filial no começo do App (Necessário)
    rpcSetEnv(cEmpAnt, cFilAnt)

    ConOut("SolicitacaoArmazemController:get - Coletando os Parametros da Query e do JSON Body")

    // Etc

    // Simular o jResponse (O JSON que tem na Classe) pra simular a resposta.
    // Inicialmente, trago da Service para testes e entendimento da arquitetura.
    Local cResponseJson as Json

    // Etc

    // Retornar um JSON criado pela Service
    cResponseJson := SolicitacaoArmazem:get()

    cTesteChegouAqui := "Sim ou não?"

    ConOut("SolicitacaoArmazemController:get - Configurando os Headers e a Response")
    oRest:setKeyHeaderResponse('Content-Type', 'application/json; charset=utf-8')    
    oRest:setResponse(cResponseJson)

    // Resetar a Empresa/Filial e liberar licenças utilizadas.
    rpcClearEnv()

Return .T.

E ai na minha Service eu crio um JSON pra testes, que eu passo para a minha Controller:

class SolicitacaoArmazemService
    Public Data jResponse as Json

    Public method new() as Object
    Public method get() as Json
EndClass

Method new() as Object Class SolicitacaoArmazemService
    ConOut("SolicitacaoArmazemService:new - Construindo a Service e instanciando JsonObject...")
    ::jResponse := JsonObject():New()
Return Self

Method get() as Json Class SolicitacaoArmazemService
    Local jResponse := '[{"Mensagem":"Hello World!"}]'
Return ::jResponse

Porém, ele não vai pra frente na linha cResponseJson := SolicitacaoArmazem:get().

Informações adicionais:

No Debug, ele quando chega na linha em questão tem o cResponseJson definido como Nil, e na linha seguinte ele para de executar e não preenche o cTesteChegouAqui. Vejam a imagem:

Imagem mostrando que não chegou no cTesteChegouAqui

Versão (1):

Ver a versão formatada

Quero passar o objeto JSON de uma service para a minha controller, tentei `cResponseJson := SolicitacaoArmazem:get()` mas não deu certo.

Comentário

new question