You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Atualmente o módulo download.py não tem uma função de busca, já que está limitado às APIs da Google Cloud. No entanto, com a implementação dos novos endpoints do website/CKAN, é possível, agora, fazer uma função de busca.
Solução proposta
Implementar uma função search que usará o endpoint bd_dataset_search da API do website.
Proposta de estrutura da função:
defsearch(query, order_by):
"""This function works as a wrapper to the `bd_dataset_search` website API enpoint. Args: query (str): String to search in datasets and tables' metadata. order_by (str): score|popular|recent Field by which the results will be ordered. Returns: pd.DataFrame: Response from the API presented as a pandas DataFrame. Each row is a table. Each column is a field identifying the table. """pass
Lista de tarefas
Subir ambiente local. Ver documentação de como fazê-lo aqui.
Escrever código da função
Criar testes unitários para a função e testá-la localmente.
Documentar a função com docstrings, caso necessário (a estrutura proposta já contêm docstrings, mas dependendo da implementação, algum ajuste será necessário.
Abrir um pull request (PR) neste repositório com a proposta de código para a função. Caso precise, há uma sugestão de workflow para a criação de pull requests aqui. Basta reproduzir isso no seu fork. Mais sobre PRs e forks aqui.
Você pode criar o PR antes de terminar o código e abri-lo para discussão caso tenha dúvidas ou ache necessário por qualquer motivo que seja.
Contexto adicional
Entendendo o bd_dataset_search e a API do basedosdados
Para investigar e interagir com o endpoint bd_dataset_search, você utilizar o link https://basedosdados.org/openapi, que possui uma documentação interativa da API como um todo. Lá, entre os endpoints listados, você poderá achar o bd_dataset_search, visualizar seus parâmetros e experimentar algumas chamadas. Se preferir, você pode usar um software como Postman, que permite visualizar respostas de APIs de uma forma mais fácil do que no navegador.
Pacotes do Python a considerar
O pacote requests te permitirá interagir com a API dentro do Python, fazendo pedidos HTTP. O pacote json te ajudará a transformar a resposta bruta da API num dict do Python. Para exibir o resultado de uma forma legível, você poderá utilizar o pacote pandas para criar um DataFrame.
Este issue é uma derivação do issue #900. Ele servirá como desafio na seleção de novxs desenvolvedorxs Python.
The text was updated successfully, but these errors were encountered:
Descrição do problema
Atualmente o módulo
download.py
não tem uma função de busca, já que está limitado às APIs da Google Cloud. No entanto, com a implementação dos novos endpoints do website/CKAN, é possível, agora, fazer uma função de busca.Solução proposta
Implementar uma função
search
que usará o endpointbd_dataset_search
da API do website.Proposta de estrutura da função:
Lista de tarefas
docstrings
, caso necessário (a estrutura proposta já contêm docstrings, mas dependendo da implementação, algum ajuste será necessário.Contexto adicional
Entendendo o
bd_dataset_search
e a API do basedosdadosPara investigar e interagir com o endpoint
bd_dataset_search
, você utilizar o link https://basedosdados.org/openapi, que possui uma documentação interativa da API como um todo. Lá, entre os endpoints listados, você poderá achar obd_dataset_search
, visualizar seus parâmetros e experimentar algumas chamadas. Se preferir, você pode usar um software como Postman, que permite visualizar respostas de APIs de uma forma mais fácil do que no navegador.Pacotes do Python a considerar
O pacote
requests
te permitirá interagir com a API dentro do Python, fazendo pedidos HTTP. O pacotejson
te ajudará a transformar a resposta bruta da API numdict
do Python. Para exibir o resultado de uma forma legível, você poderá utilizar o pacotepandas
para criar umDataFrame
.Este issue é uma derivação do issue #900. Ele servirá como desafio na seleção de novxs desenvolvedorxs Python.
The text was updated successfully, but these errors were encountered: