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
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cMessage | string | Conteudo COMPACTADO referente ao corpo(Body) da resposta da requisição | X |
Retorno
Nome | Tipo | Descrição |
---|---|---|
lRet | lógico | Indica 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