Open EquipeDadosAbertosCD opened 5 years ago
Opa, acho que seria legal atualizar a página de notícas do portal com esses release notes :relaxed:
Salve, Thales!
É verdade e vai entrar lá... Simplesmente não tive tempo de mexer no portal desde então!!
Abraço e obrigado pela leitura! ;)
Fabricio Rocha Equipe Dados Abertos - Câmara
Às vésperas do início da legislatura 56 da Câmara dos Deputados, a atualização da API do Dados Abertos traz um monte de novidades e correções que nós esperamos que agradem aos nossos usuários.
Novo endpoint
partidos/{id}/membros
O novo endpoint lista os deputados que são membros de um partido, mas não apenas no momento da requisição: também é possível usar parâmetros
idLegislatura
oudataInicio
edataFim
para obter uma lista de deputados que foram integrantes do partido{id}
em um certo intervalo de tempo -- uma informação que não é disponível na antiga versão do Dados Abertos e nem mesmo no Portal da Câmara.Classificação temática de proposições
Um usuário do Dados Abertos na própria Câmara, nosso colega Francisco Cardozo, chamou nossa atenção, em dezembro, para a existência de dados de classificação das proposições por áreas temáticas, tais como "Direito Civil e Processual Civil" ou "Arte, Cultura e Religião". Logo vimos que a publicação desta classificação temática seria um prato cheio para aplicações interessantes do Dados Abertos.
Proposições podem ser classificadas com mais de uma área temática, e para evitarmos um aninhamento de dados -- difícil de reproduzir nos arquivos de planilha dos Dados Abertos -- foi criado o
endpoint
/proposicoes/{id}/temas, que fornece a lista dos temas que a proposição{id}
abrange. Além disso, foi criado o parâmetro de buscacodTema
para o endpoint/proposicoes
, que recebe um ou mais dos valores fornecidos pela lista em/referencias/proposicoes/codTema
.Os
id*
que viraramcod*
Como anunciado em 24/01/2019, foi revista a nomenclatura de campos e parâmetros de query string em vários endpoints da API, e a revisão está sendo aplicada também aos arquivos do Dados Abertos. Alguns campos e parâmetros eram usados para designar valores qualificadores de dados, mas vinham usando o prefixo "id", que é usado para identificadores de recursos na API. Estes campos foram renomeados para usar o prefixo "cod": por exemplo, o parâmetro
idTipoOrgao
que era usado para filtrar os resultados de/eventos
e/orgaos
passa a se chamarcodTipoOrgao
./eventos:
idSituacao
passa a sercodSituacao
idTipoOrgao
viracodTipoOrgao
idTipoEvento
passa a sercodTipoEvento
idTipoOrgao
passa acodTipoOrgao
/proposicoes:
idSituacao
passa a sercodSituacao
/proposicoes, /proposicoes/{id}/relacionadas:
idTipo
passa acodTipo
/proposicoes/{id}/tramitacoes:
idTipoTramitacao
torna-secodTipoTramitacao
idSituacao
passa acodSituacao
/orgaos e /orgaos/{id}:
idTipoOrgao
passa a sercodTipoOrgao
idTipoOrgao
passa a sercodTipoOrgao
/deputados/{id}/despesas:
idDocumento
viracodDocumento
idLote
torna-secodLote
idTipoDocumento
passa a sercodTipoDocumento
/proposicoes
com alteraçõesO parâmetro
idAutor
do endpoint/proposicoes
foi substituído poridDeputadoAutor
por uma outra razão. Por enquanto só é possível selecionar proposições que sejam de autoria de um ou mais deputados, para os quais a API tem identificadores exclusivos; mas proposições também podem ser apresentadas por senadores, por outros poderes da República, por Assembleias Legislativas estaduais e por cidadãos. Em alguma das próximas atualizações, será implementado um parâmetros para permitir a busca por diferentes tipos de autores.Outra novidade no endpoint está debaixo do capô: a consulta ao banco de dados passou por otimizações para tornar as respostas mais rápidas.
Tramitações de uma proposição em intervalo de tempo
O endpoint
/proposicoes/{id}/tramitacoes
passa a suportar os parâmetrosdataInicio
edataFim
-- outra sugestão do nosso colega Francisco Cardozo."papel" substituído por "título"
Nos dados retornados pelos endpoints
/deputados/{id}/orgaos
,/legislaturas/{id}/mesa
e/orgaos/{id}/membros
, o campopapel
passa a se chamartitulo
e o campoidPapel
passa a sercodTitulo
.Mudanças em
/referencias
Todo o conjunto de dados
/referencias
foi reorganizado para, como bem definiu o usuário Hugo Benício em 03/10/2018 (https://github.com/labhackercd/dados-abertos/issues/188), torná-lo "mais RESTful", e mais coerente com a organização adotada em toda a API.O papel do endpoint
/referencias
é fornecer listas de valores usados para qualificação de dados, como como as situações de exercício de um deputado, os tipos de proposições e os tipos de eventos. Esses valores são usados principalmente em parâmetros de filtragem e seleção em diversos endpoints que retornam listas, como/deputados
e/eventos
.Na nova organização, os antigos endpoints ´/referencias/tiposEvento´ e
/referencias/situacoesEvento
, por exemplo, passam a ser/referencias/eventos/codTipoEvento
e/referencias/eventos/codSituacaoEvento
. Ou seja: o segundo elemento do path passa a ter o nome do conjunto de dados no qual os nomes usados na terceira posição do path são campos ou parâmetros. Isto é: em geral, abaixo de/referencias
se segue o nome de umendpoint
principal e o nome de algum parâmetro que recebe um ou mais valor(es) da lista fornecida. Embora a explicação possa parecer muito enrolada, uma olhada na página de documentação da API mostra que a lógica fica mais clara e automatizável.Além disso, já nos endpoints de dois níveis passam a ser retornadas todas as listas que também são fornecidas individualmente como subrecursos. Por exemplo,
/referencias/proposicoes
passa a ter, como retorno, as listas fornecidas por/referencias/proposicoes/siglaTipo
,/referencias/proposicoes/siglaTipo
, /referencias/proposicoes/codSituacaoe
/referencias/proposicoes/codTema`.Os antigos endpoints continuam funcionando temporariamente, e os novos endpoints já incorporam os novos nomes "cod*" dos parâmetros e campos.
Correção em
/orgaos/{id}/membros
Incorretamente, o endpoint estava listando, por padrão, todos os deputados que já foram membros do órgão
{id}
. Com a correção, passam a ser retornados os parlamentares que são integrantes do órgão no momento da requisição.Novo endpoint:
/eventos/{id}/orgaos
Eventos como audiências públicas podem ser realizados por mais de um órgão. Atualmente a lista de órgãos responsáveis por um evento é incorporada a
/eventos/{id}
, mas esta lista aninhada é problemática para os formatos de planilha nos quais os arquivos do Dados Abertos são fornecidos. O novo subrecurso permitirá que, futuramente, a lista possa ser desmembrada do retorno de/eventos/{id}
.Parâmetros desconhecidos geram erro
Devido ao comportamento padrão da plataforma usada para a API, parâmetros de query string que não eram suportados vinham sendo silenciosamente ignorados. Isso costumava causar surpresas desagradáveis: uma busca em
/eventos
com os parâmetrosdataHoraInicio
edataHoraFim
, por exemplo, não sairia como o imaginado, porque neste endpoint os parâmetros de data e horário são separados.Para evitar problemas assim, o comportamento foi reconfigurado para que seja retornado um erro 400 se houver na query string um parâmetro desconhecido.
A todos que colaboraram para esta atualização com seus relatos de bugs e sugestões, muito obrigado e mantenham contato!
Fabricio Rocha Equipe Dados Abertos - Câmara