Páginas filhas
  • LGX - LRESTLOGIXRESPONSE

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Pagetitle
LGX - LRESTLOGIXRESPONSE
LGX - LRESTLOGIXRESPONSE
Componente utilizado para criação do retorno das requisições REST no formato JSON, com base em informações repassadas para montagem como STATUS, PAYLOAD, MESSAGE.

Para saber mais sobre REST LOGIX acesse Guia de Desenvolvimento de APIs para o produto Logix.

Nota

Componente disponível a partir da versão 12.1.13 do Logix.

Hierarquia



Sintaxe


Bloco de código
LET m_restresponse_reference = _ADVPL_create_component(NULL,"LRESTLOGIXRESPONSE")


Métodos GET


Métodos acessíveis através da função _ADVPL_get_property que permite recuperar e manipular os valores do componente:


Expandir
titleGET GENERATE

Método GET: GENERATE 
Âncora
LRESTLOGIXRESPONSE_GET_GENERATE
LRESTLOGIXRESPONSE_GET_GENERATE

Efetua a geração do retorno da requisição REST, com base nas informações de PAYLOAD, MESSAGE e STATUS já previamente setados.

Sintaxe




Bloco de código
_ADVPL_get_property(< l_reference >, "GENERATE" ) => CHAR

Retorno




TipoDescrição
CHAR

Conteúdo texto gerado no formato JSON, que será utilizado como retorno do resultado da requisição REST, já convertido no formato UTF8.

Exemplo




Bloco de código
languageapplescriptruby
titleExemplo GET GENERATE
linenumberstrue
#------------------------------------------------------------------------------#
FUNCTION LRESTLOGIXRESPONSE_getGENERATE()
#------------------------------------------------------------------------------#
    DEFINE l_json_reference VARCHAR(10)
    DEFINE l_logix_response VARCHAR(10)
    DEFINE l_json CHAR(1000)
     
    #--# Utilização do método SERIALIZE da classe LJSONOBJECT  #--#
    LET l_json = _ADVPL_get_property(l_json_reference,"SERIALIZE")
     
    #--# Criação da resposta padronizada utilizando a classe LRestLogixResponse  #--#
    LET l_logix_response = _ADVPL_create_component(NULL,"LRestLogixResponse")
    CALL _ADVPL_set_property(l_logix_response,"PAYLOAD",l_json)
 
    #--# Propriedades opcionais #--#
    CALL _ADVPL_set_property(l_logix_response,"MESSAGE","Erro Msg","Erro Detail", "10")
    CALL _ADVPL_set_property(l_logix_response,"STATUS",'200')
 
    #--# Opcional, utilizada quando o conteúdo de retorno for um JSONArray #--#
    CALL _ADVPL_set_property(l_logix_response,"HAS_NEXT",TRUE)
     
    RETURN _ADVPL_get_property(l_logix_response,"GENERATE")
END FUNCTION




Métodos SET


Métodos acessíveis através da função _ADVPL_set_property que permite alterar e manipular os valores do componente:


Expandir
titleSET HAS_NEXT

Método SET: HAS_NEXT

Define quando o conteúdo do PAYLOAD  for do tipo JSONArray para gerar o retorno da requisição REST.

Sintaxe




Bloco de código
CALL _ADVPL_set_property(< l_json_reference >,"HAS_NEXT", < l_has_next >)

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
l_has_nextSMALLINT

Indicador de conteúdo do Payload no formato JSONArray.

VALORES: TRUE ou FALSE

SimFALSE

Exemplo




Bloco de código
languageapplescript
titleExemplo SET HAS_NEXT
linenumberstrue
#------------------------------------------------------------------------------#
FUNCTION LRESTLOGIXRESPONSE_setHAS_NEXT()
#------------------------------------------------------------------------------#
	DEFINE l_json_reference VARCHAR(10)
    DEFINE l_logix_response VARCHAR(10)
	DEFINE l_json CHAR(1000)
	
	LET l_json = _ADVPL_get_property(l_json_reference,"SERIALIZE")
	
	LET l_json = '{ "valores": ["item1","item2","item3",{"subitem1":"subitem2"}]}'
	
	LET l_logix_response = _ADVPL_create_component(NULL,"LRestLogixResponse")
    CALL _ADVPL_set_property(l_logix_response,"PAYLOAD",l_json,"payload")
    CALL _ADVPL_set_property(l_logix_response,"HAS_NEXT",TRUE)
    CALL _ADVPL_set_property(l_logix_response,"STATUS",'201')
    
	RETURN _ADVPL_get_property(l_logix_response,"GENERATE")
END FUNCTION



Expandir
titleSET PAYLOAD

Método SET: PAYLOAD

Define o conteúdo do PAYLOAD que será remetido na requisição REST.

Sintaxe




Bloco de código
CALL _ADVPL_set_property(< l_json_reference >,"PAYLOAD", < l_payload >)

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
l_payloadCHARConteúdo do payload que será transportado na requisição REST.Sim

Exemplo




Bloco de código
languageapplescript
titleExemplo SET PAYLOAD
linenumberstrue
#------------------------------------------------------------------------------#
FUNCTION LRESTLOGIXRESPONSE_setPAYLOAD()
#------------------------------------------------------------------------------#
    DEFINE l_json_reference VARCHAR(10)
    DEFINE l_logix_response VARCHAR(10)
    DEFINE l_json CHAR(1000)
     
    #--# Utilização do método SERIALIZE da classe LJSONOBJECT  #--#
    LET l_json = _ADVPL_get_property(l_json_reference,"SERIALIZE")
     
    #--# Criação da resposta padronizada utilizando a classe LRestLogixResponse  #--#
    LET l_logix_response = _ADVPL_create_component(NULL,"LRestLogixResponse")
    CALL _ADVPL_set_property(l_logix_response,"PAYLOAD",l_json)
 
    #--# Propriedades opcionais #--#
    CALL _ADVPL_set_property(l_logix_response,"MESSAGE","Erro Msg","Erro Detail", "10")
    CALL _ADVPL_set_property(l_logix_response,"STATUS",'200')
 
    #--# Opcional, utilizada quando o conteúdo de retorno for um JSONArray #--#
    CALL _ADVPL_set_property(l_logix_response,"HAS_NEXT",TRUE)
     
    RETURN _ADVPL_get_property(l_logix_response,"GENERATE")
END FUNCTION



Expandir
titleSET STATUS

Método SET: STATUS

Define o valor do código de STATUS de retorno da requisição REST.

Sintaxe




Bloco de código
CALL _ADVPL_set_property(< l_reference >,"STATUS", < l_status >)

Parâmetros




NomeTipoDescriçãoObrigatório?Padrão
l_statusCHARCódigo do status que será assumido no retorno da requisição REST.Sim

Exemplo




Bloco de código
languageapplescript
titleExemplo SET STATUS
linenumberstrue
#------------------------------------------------------------------------------#
FUNCTION LRESTLOGIXRESPONSE_setSTATUS()
#------------------------------------------------------------------------------#
    DEFINE l_json_reference VARCHAR(10)
    DEFINE l_logix_response VARCHAR(10)
    DEFINE l_json CHAR(1000)
     
    #--# Utilização do método SERIALIZE da classe LJSONOBJECT  #--#
    LET l_json = _ADVPL_get_property(l_json_reference,"SERIALIZE")
     
    #--# Criação da resposta padronizada utilizando a classe LRestLogixResponse  #--#
    LET l_logix_response = _ADVPL_create_component(NULL,"LRestLogixResponse")
    CALL _ADVPL_set_property(l_logix_response,"PAYLOAD",l_json)
 
    #--# Propriedades opcionais #--#
    CALL _ADVPL_set_property(l_logix_response,"MESSAGE","Erro Msg","Erro Detail", "10")
    CALL _ADVPL_set_property(l_logix_response,"STATUS",'200')
 
    #--# Opcional, utilizada quando o conteúdo de retorno for um JSONArray #--#
    CALL _ADVPL_set_property(l_logix_response,"HAS_NEXT",TRUE)
     
    RETURN _ADVPL_get_property(l_logix_response,"GENERATE")
END FUNCTION



Expandir
titleSET MESSAGE

Método SET: MESSAGE

Define o conteúdo da mensagem (MESSAGE), código de STATUS de retorno da requisição REST e detalhamento da mensagem (DETAIL_MESSAGE).

Sintaxe




Bloco de código
CALL _ADVPL_set_property(< l_reference >,"MESSAGE", [ < l_message > ] , < l_status_code >, [ < l_detail_message > ] )

Parâmetros




NomeTipoDescriçãoObrigatório?
l_messageCHARTexto resumido da mensagem quando indicar algum erro.Não
l_status_codeCHAR

Código do status que será assumido no retorno da requisição REST.

Sim
l_detail_messageCHARTexto detalhado da mensagem quando indicar algum erro.Não

(aviso)(aviso)(aviso) ATENÇÃO:  Quando STATUS CODE é 200 (OK) não deve-se preencher conteúdo para os parâmetros MESSAGE e DETAIL_MESSAGE, pois a classe LRestResponseMessage interpretará que o STATUS_CODE foi registrado com valor incorreto e irá converter o STATUS_CODE automaticamente para 500 (Interlal Server Error)


Exemplo




Bloco de código
languageapplescript
titleExemplo SET STATUS
linenumberstrue
#------------------------------------------------------------------------------#
FUNCTION LRESTLOGIXRESPONSE_setSTATUS()
#------------------------------------------------------------------------------#
    DEFINE l_json_reference VARCHAR(10)
    DEFINE l_logix_response VARCHAR(10)
    DEFINE l_json CHAR(1000)
     
    #--# Utilização do método SERIALIZE da classe LJSONOBJECT  #--#
    LET l_json = _ADVPL_get_property(l_json_reference,"SERIALIZE")
     
    #--# Criação da resposta padronizada utilizando a classe LRestLogixResponse  #--#
    LET l_logix_response = _ADVPL_create_component(NULL,"LRestLogixResponse")
    CALL _ADVPL_set_property(l_logix_response,"PAYLOAD",l_json)
 
    #--# Propriedades opcionais #--# OPCAO 01 RESPOSTA
    CALL _ADVPL_set_property(l_logix_response,"MESSAGE","Erro Msg","404","Erro Detail Message")
     
    #--# Propriedades opcionais #--#  OPCAO 02 RESPOSTA      
    CALL _ADVPL_set_property(l_logix_response,"STATUS",'200')
 
    #--# Opcional, utilizada quando o conteúdo de retorno for um JSONArray #--#
    CALL _ADVPL_set_property(l_logix_response,"HAS_NEXT",TRUE)
     
    RETURN _ADVPL_get_property(l_logix_response,"GENERATE")
END FUNCTION

(informação) Veja que no exemplo acima apenas uma das opções pde ser utilizada para indicar STATUS 200 ou STATUS 404, apenas para exemplificar as duas formas.




Veja Também


Exemplos completos de utilização disponíveis no Guia de Desenvolvimento de APIs para o produto Logix.