# . documentação API: https://docs.coingecko.com/v3.0.1/reference/introduction import requests CHAVE_API = 'CG-K5RS5VXsdFDip2UvY3z8VjQP' headers = { 'accept': 'application/json', 'x-cg-demo-api-key': CHAVE_API } url_raiz_API = 'https://api.coingecko.com/api/v3/' # criptomoeda = 'bitcoin' # vs_currency = 'eur' # dias = '30' # precisao = '3' #url_consulta_ohlc = 'coins/' + criptomoeda + '/ohlc?vs_currency=' + vs_currency + '&days=' + dias + '&precision=' + precisao # verificar o estado do servidor API def ping() -> tuple: endpoint_api = 'ping' url_pedido = url_raiz_API + endpoint_api resposta = requests.get(url_pedido, headers=headers) return resposta.status_code, resposta.json()['gecko_says'] # debug # codigo, dados = ping() # print(f'codigo: {codigo}') # print(f'resposta: {dados}') # fazer consulta de dados OHLC def consulta_ohcl(criptomoeda: str, vs_currency: str = 'eur', dias: int | str = 30, precisao: int | str = 3) -> tuple: # validacao de parametros if not isinstance(criptomoeda, str): raise ValueError('\'criptomoeda\' não é do tipo \'str\'') if not isinstance(vs_currency, str): raise ValueError('\'vs_currency\' não é do tipo \'str\'') if (not isinstance(dias, str)) and (not isinstance(dias, int)): raise ValueError('\'dias\' não é do tipo \'str\' ou \'int\'') if isinstance(dias, int): dias = str(dias) if (not isinstance(precisao, str)) and (not isinstance(precisao, int)): raise ValueError('\'precisao\' não é do tipo \'str\' ou \'int\'') if isinstance(precisao, int): precisao = str(precisao) endpoint_api = 'coins/' + criptomoeda + '/ohlc?vs_currency=' + vs_currency + '&days=' + dias + '&precision=' + precisao url_pedido = url_raiz_API + endpoint_api resposta = requests.get(url_pedido, headers=headers) return resposta.status_code, resposta.json() # debug # codigo, dados = consulta_ohcl('bitcoin') # print(f'codigo: {codigo}') # for item in dados: # print(item)