Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

REST - Tamanho máximo do json em request body ?

Olá pessoal. Estou participando da fase de análise de requisitos de um novo sistema aqui na empresa que trabalho (órgão de tecnologia do governo de um determinado estado).

Só para contextualizar esse novo sistema será responsável por notificar (através de e-mail, push no app, sms, entre outros) os cidadãos do estado, o formato do meu json que será esperado no request, será mais ou menos assim:

{
    "notificacoes" : [
        {
            "cpf": "<cpf_cidadao>",
            "mensagem": "<mensagem_ser_entregue_cidadao>",
            "grupo": "<grupo_interesse>",
            "urgente": false, 
            "canal": "<email_sms_ou_push_app>"
        },
        {
            "cpf": "<cpf_cidadao>",
            "mensagem": "<mensagem_ser_entregue_cidadao>",
            "grupo": "<grupo_interesse>",
            "urgente": false,
            "canal": "<email_sms_ou_push_app>"
        },
        {
            "cpf": "<cpf_cidadao>",
            "mensagem": "<mensagem_ser_entregue_cidadao>",
            "grupo": "<grupo_interesse>",
            "urgente": false,
            "canal": "<email_sms_ou_push_app>"
        } ....
    ]
}

então me deparei com um requisito não funcional atrelado a categoria de "performance". Devido a possibilidade da notificação ser para vários cidadãos, quando digo vários, pense em uma quantidade bem grande, sei lá 500 mil cidadãos, enviados em apenas uma chamada (solicitação REST).

A pergunta é, alguém sabe dizer qual a quantidade máxima de elementos que é possível enviar neste array. Existe um tamanho máximo do JSON que é encapsulado no body de uma requisição, seja ela POST, PUT, enfim ....?

Obs.: Obviamente que este processamento será feito de forma assíncrona, resultando em um ok no response da solicitação, logo após o recebimento da mesma.

5 respostas

Fala ai Gustavo, de boa ?

Não há tamanho máximo, se não me engano, contudo o maior problema é a quantidade de informação que está causando no seu tempo de resposta.

Você tentar diminuir a carga de informação dividindo por locais e tals.

Olá Matheus, pra ser sincero não entendi a sua sugestão.

Meu processamento será feito de forma assíncrona, ou seja assim que o request chegar já será gerado um response com um ok (porém ainda não pensei exatamente como será a estrutura do meu response, mas isso é o de menos).

Considere o array de notificacoes do examplo acima. No exemplo coloquei apenas 3 elementos no array, mas a minha dúvida é, existe tamanho máximo (em MB, sei lá) para o JSON (body request), ou seja, eu consigo passar um array de notificações para 1 milhão de elementos no array por exemplo, ou mais ?

Já o processamento, como dito, será de forma assíncrona, nem estou me preocupando neste momento, pois provavelmente usarei fila (JMS, Redis, algo assim), para gerenciar isso.

Fui claro em minha dúvida ?

solução!

Não há limite, só vai demorar mais pra qualquer engine conseguir montar essa resposta.

Ok. Achei que tinha um limite de 10 MB, no body request, ou algo assim.

Em tese, não tem muito isso, por exemplo com o php você consegue configurar o tamanho máximo, mas as vezes o seu servidor acaba não tendo memória o suficiente para manter tudo e disponibilizar isso.

Esses 10MB ai, geralmente são meio que padrão que qualquer servidor aguenta.