Issue #47
Otimizar acesso a API ao clicar em "propostas"
Ao clicar em propostas está sendo chamado duas vezes o endpoint da API: http://hom.dialoga.gov.br/api/v1/search/article?page=1&per_page=20&type=ProposalsDiscussionPlugin::Proposal
É possível também restringir os campos obtidos (o body do parent das propostas é muito grande). Exemplo: http://hom.dialoga.gov.br/api/v1/search/article?page=1&per_page=20&type=ProposalsDiscussionPlugin::Proposal&fields=abstract)
-
O mesmo tratamento pode ser feito na página de ranking.
-
Milestone changed to 8.0
-
Milestone changed to 7.0
-
TODO:
- [x] realizar a chamada da API apenas 1 vez no carregamento;
- [x] restringir os campos necessários;
-
Reassigned to @leonardomerlin
-
Agora que estou trabalhando nessa issue, lembrei dos problemas que tive ao trabalhar com a API. Peço a ajuda de vocês para resolver as dificuldades que vou encontrando.
Eu preciso dos seguintes dados na página de propostas:
- abstract: conteúdo da proposta;
- id, hits, ranking_position, votes_against, votes_count, votes_for;
- parent.categories - para relacionar a proposta a uma cor do tema;
- parent.id e parent.slug - para identificar o programa;
- parent.image.url - para compartilhar a proposta veicula com a imagem do programa
A URL que montei foi a seguinte:
http://hom.dialoga.gov.br/api/v1/search//article?fields%5B%5D=id&fields%5B%5D=abstract&fields%5B%5D=hits&fields%5B%5D=ranking_position&fields%5B%5D=votes_against&fields%5B%5D=votes_count&fields%5B%5D=votes_for&fields%5B%5D=parent&fields%5B%5D=categories&fields%5B%5D=slug&fields%5B%5D=url&fields%5B%5D=image&page=1&per_page=20&type=ProposalsDiscussionPlugin::Proposal
Mesmo assim, ainda está trazendo muita coisa (o abstract do parent, por exemplo). Em um teste local, essa chamada custou 22.7Kb.
-
@leonardomerlin atualmente na API o filtro de campos inseridos no campo fields considera qualquer objeto da hierarquia retornada, ou seja, não tem como retornar especificamente os campos de cada objeto (ex: fields=abstract, fields=parent.categories). Vamos melhorar posteriormente essa seleção de campos de retorno com a atualização da versão do grape.
Mas parece que já reduziu bastante. Em homologação está custando 171Kb.
-
Maravilha! Então, por enquanto, as requisições podem ser do jeito que fiz ali?! Vou commitar aqui.
-
Sim!
-
Status changed to closed by commit 3e7217e89f27ff04b6ab34c66d077b0c1d69f084