Open EquipeDadosAbertosCD opened 3 years ago
Olá, @flaviolenz !
É muito frequente -- mas muito mesmo -- que usuários peçam que o resultado de um determinado endpoint seja estendido para abrigar dados que são úteis para suas aplicações. É o eterno dilema da granularidade nas APIs. Se todos esses pedidos forem atendidos, logo aparecerão outros usuários dizendo que os retornos são pesados demais, gastam a banda/cota do usuário do aplicativo, e são cheios de informações que não são úteis para suas aplicações!
Há muito tempo são previstos na especificação do Dados Abertos alguns parâmetros de projeção, que permitem que o usuário controle em até certo grau os campos que serão retornados (bem menos do que uma API GraphQL, mas bem mais fácil de usar). Ainda não tivemos condições para implementá-los, porém. E não sei se eles resolveriam a questão que você coloca, pois sua sugestão se refere a "entidades cruzadas", digamos assim, e que nem sempre se comunicam bem: os dados de proposições, por exemplo, não têm os partidos dos autores porque várias proposições não são de parlamentares, mas de órgãos internos ou externos.
A depender da sua aplicação, eu lhe sugeriria criar um "cache" de dados sobre as proposições, ou mesclar os dados da API com os dados bem mais volumosos dos arquivos para download. De toda forma eu espero que um dia consigamos ter no Portal de Dados Abertos algum recurso que nos permita discutir com a comunidade cada endpoint e cada arquivo e o conteúdo de cada um deles, para podermos ter estimativas mais claras sobre as necessidades de dados mais frequentes entre os usuários e, assim, fazermos ajustes na granularidade dos dados.
Obrigado e abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
Ola Fabricio,
Obrigado pela resposta.
De fato o cache eh o workaround que implementei. Mas sempre na insegurança de estar com uma informação desatualizada até a expiração.
Existe algo que me dê os trâmites/atualização do último dia/hora/minuto?
Abraço
F. Lenz
Em seg., 5 de abr. de 2021 17:57, Serviço de Dados Abertos - Câmara dos Deputados @.***> escreveu:
Olá, @flaviolenz https://github.com/flaviolenz !
É muito frequente -- mas muito mesmo -- que usuários peçam que o resultado de um determinado endpoint seja estendido para abrigar dados que são úteis para suas aplicações. É o eterno dilema da granularidade nas APIs. Se todos esses pedidos forem atendidos, logo aparecerão outros usuários dizendo que os retornos são pesados demais, gastam a banda/cota do usuário do aplicativo, e são cheios de informações que não são úteis para suas aplicações!
Há muito tempo são previstos na especificação do Dados Abertos alguns parâmetros de projeção, que permitem que o usuário controle em até certo grau os campos que serão retornados (bem menos do que uma API GraphQL, mas bem mais fácil de usar). Ainda não tivemos condições para implementá-los, porém. E não sei se eles resolveriam a questão que você coloca, pois sua sugestão se refere a "entidades cruzadas", digamos assim, e que nem sempre se comunicam bem: os dados de proposições, por exemplo, não têm os partidos dos autores porque várias proposições não são de parlamentares, mas de órgãos internos ou externos.
A depender da sua aplicação, eu lhe sugeriria criar um "cache" de dados sobre as proposições, ou mesclar os dados da API com os dados bem mais volumosos dos arquivos para download. De toda forma eu espero que um dia consigamos ter no Portal de Dados Abertos algum recurso que nos permita discutir com a comunidade cada endpoint e cada arquivo e o conteúdo de cada um deles, para podermos ter estimativas mais claras sobre as necessidades de dados mais frequentes entre os usuários e, assim, fazermos ajustes na granularidade dos dados.
Obrigado e abraço!
Fabricio Rocha Equipe Dados Abertos - Câmara
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/CamaraDosDeputados/dados-abertos/issues/309#issuecomment-813645546, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACQ3S7LPHMA4OX42X6EGI5TTHIP4VANCNFSM42NND4DA .
Olá Fabricio,
Gostaria de dar uma sugestao para economizar nas chamadas aos end-points. Que os objetos referenciados viessem mais preenchidos.
Por exemplo: https://dadosabertos.camara.leg.br/api/v2/eventos/60754/pauta
retorna uma lista de itens que podem ter uma proposicao atrelada:
E vou exibir o resultado isso numa lista (com 40 itens, por exemplo), mas o normal de um PL eh que ele seja mencionado juntamente com o(s) autor(es). Quando a consulta eh sobre 1 só proposicao, até que nao é muito prejuízo fazer uma chamada adicional pra pegar os autores, mas 40 chamadas adicionais é bem caro. Da mesma forma, quero saber quem é o ultimo relator da materia (aí tenho que fazer uma chamada a /proposicoes pra pegar essa informacao). E, se quero colocar o partido do autor, isso significa mais uma chamada pro endpoint /deputado pra cada um dos deputados, pq o endpoint /proposicao/9999/autores nao tras a informacao de partido.
Pra mostrar a pauta da CTASP dessa semana, foram essas chamadas:
Resumindo, foram 286 chamadas.
Isso ai foi so um exemplo, mas acho que tem varios pontos que os endpoints poderiam penetrar um pouco mais nos dados. Uma coisa eh acessar uma base SQL, como deve estar sendo feito aí.. outra eh ficar fazendo chamadas HTTP.
Originally posted by @flaviolenz in https://github.com/CamaraDosDeputados/dados-abertos/issues/297#issuecomment-809705476