Árvore de páginas

O Chunked é um termo utilizado em conjunto com o protocolo de transferência HTTP, também conhecido como Chunked Transfer Encoding, é um mecanismo para enviar dados em pedaços ou "chunks", em vez de enviar tudo de uma só vez. Essa abordagem pode ser útil em cenários em que o tamanho total dos dados a serem transmitidos é desconhecido ou quando a transmissão de dados em uma única operação pode ser impraticável devido a restrições de recursos ou latência de rede.

No REST TLPP, se você deseja implementar o envio dos dados divididos em pequenos chunks (pedaços), você deve utilizar uma combinação de métodos disponíveis:
Do primeiro até o penúltimo envio, deve utilizar a sintaxe: oRest:setChunkedResponse(cContent).
No último envio, deve utilizar a sintaxe: oRest:setLastChunkedResponse(cContent).
Veja mais sobre o o método oRest:setLastChunkedResponse.

Sintaxe
setChunkedResponse( < cMessage > )
Parâmetros
NomeTipoDescriçãoObrigatórioReferência
cMessagestringConteudo COMPACTADO referente ao corpo(Body) da resposta da requisiçãoX
Retorno
NomeTipoDescrição
lRetlógicoIndica se o método foi executado(.T.) ou (.F.) caso tenha ocorrido algum problema
Observações
  • Para visualizar o exemplo, execute uma requisição para o verbo impementado para a URI: "/documentation/setchunkedresponse"

  • Para enviar o "último chunk", utilize o método "setLastChunkedResponse". Veja mais em: oRest:setLastChunkedResponse
Exemplos
#include "tlpp-core.th"
#include "tlpp-rest.th"

@Get("/chunked/ctry/:ctry")
function u_Chunked()
  local jParams := oRest:getPathParamsRequest() as object
  local cContent := '' as character
  local nTry := 0 as numeric
  local nA := 0 as numeric
  
  if (jParams <> NIL .And. jParams['ctry'] <> Nil .And. !Empty(jParams['ctry']))
    if (nTry := Val(jParams['ctry'])) > 0 
      for nA := 1 to nTry
        cContent := StrTran(sPutChunkedValue(), "#change!", cValToChar(nA))
        if(nA == nTry)
          oRest:setLastChunkedResponse(cContent)
        else
          oRest:setChunkedResponse(cContent)
        endif
      next
    endif
  endif
return

Static Function sPutChunkedValue()
  local cContent := '' as character
  cContent := '1:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eros turpis, finibus vitae eros eu, consectetur lacinia nisl. Duis et dapibus nisi. Pellentesque facilisis arcu quam, ac tincidunt lectus pharetra in. Morbi dapibus semper dolor eget euismod. Pellentesque ut commodo lorem. Suspendisse efficitur congue leo, id lacinia dolor auctor vitae. Vestibulum vitae elit in ligula pellentesque cursus. Donec quis leo in massa interdum aliquam. Vivamus auctor quam nec mattis dignissim. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam at orci luctus, egestas est vitae, scelerisque nisl.';
               + 'Cras finibus sem sed dignissim rutrum. Nam a lectus porttitor, elementum sapien sed, porta ex. Morbi accumsan porttitor libero, auctor mollis augue aliquet eu. Sed cursus sapien ut nisi laoreet tempus. Donec congue laoreet eros sit amet semper. Phasellus ac urna ut velit volutpat sagittis. Vestibulum ullamcorper ex in dictum rutrum. Ve. Ut scelerisque id.:#change!'
Return cContent

Abrangência
01/2020
  • Sem rótulos