Curso de programación de criptomonedas con Python - 3. Envolturas

in #spanish7 years ago (edited)

En la clase anterior vimos cómo llamar a las APIs utilizando direcciones URL. Usamos la librería requests para hacerlo directamente en Python. Hoy vamos a hacer lo mismo sin tener que preocuparnos de utilizarla.

Las envolturas

Una envoltura, wrapper en inglés, es una capa de código que se utiliza para facilitarnos el trabajo de programar. Para descubrir cómo funcionan vamos a volver a la API de Coinmarketcap. Cómo hacer las llamadas mediante las URL's es muy fastidioso y lento, así que vamos a utilizar una envoltura para coinmarketcap. La podeis descargar desde esta página: https://pypi.python.org/pypi/coinmarketcap/ o instalarla fácilmente con pip:

pip install coinmarketcap

Una vez instalada volvemos a la página de la descarga y vemos la documentación. Allí está el código que debemos utilizar para llamar a la API, junto con la respuesta que nos devolverá Python. Aquí lo tenéis en el mío:

  • La primera línea dice: desde la librería 'coinmarketcap' importa 'Market', que es una clase. Más abajo explico qué estamos haciendo en detalle.
  • En la segunda creamos una variable llamada coinmarketcap, que va a referirse a dicha clase. Con esto, en vez de utilizar el nombre de la clase Market(), la llamaremos diciendo coinmarketcap.
  • La tercera línea dice al intérprete que llame a la clase Market (que ahora utilizamos como coinmarketcap) y le aplique la función ticker para la criptomoneda bitcoin. Esto no nos va a devolver nada ya que he agregado al principio de la línea '#', lo que significa que el interpreté no lo leerá.
  • En la cuarta le digo al intérprete que imprima los datos globales. Esto nos devolverá una respuesta con datos globales de todo el ecosistema bitcoin.

  • Por último imprimimos los datos para STEEM. Pruébalo tu mismo para ver los datos de la moneda en tiempo real.

Entendiendo nuestra envoltura

Hay veces que necesitaremos hacer cambios en los wrappers que han definido otros programadores para sus necesidades, porque las nuestras no serán las mismas. Así que debemos entender que está pasando en las dos primeras líneas del código anterior.

Para ello vamos a ir al github de esta envoltura coinmarketcap. Entramos en la carpeta 'coinmarketcap' y allí entramos en 'core.py'. Nos saldrá un montón de código indescifrable por ahora, pero sólo vamos a entender un par de cosas de ahí.

En las primeras líneas de nuestro código decíamos from coinmarketcap import Market. El 'Market' al que nos referimos se encuentra aquí, en el núcleo de la librería.
Es una clase en Python. Invocando a esta clase, podemos hacer uso de sus funciones. Le pusimos el nombre coinmarketcap para acceder a sus funciones con un punto.

def __init__ indica cual será la función que se ejecute automáticamente al llamar a la clase. En este caso hace referencia a la primera parte de la URL a la que estamos llamando, que siempre será la misma en la API de coinmarketcap. Las funciones están definidas abajo:

La función ticker, que sirve para obtener los datos de las criptomonedas, puede tener un parámetro, la moneda que nosotros necesitemos. También se puede llamar sin añadir ningún parámetro, pues por defecto es "None", y nos devolvería los datos de todas las criptomonedas. Estas funciones agregan a la URL base la información que falta para hacer las llamadas.

Esto es todo por hoy. No pasa nada si no entiendes bien todo el código, poco a poco. Tampoco dudes en preguntar cualquier duda que tengas. Nos vemos en la próxima clase en la que aprenderemos como trabajar con las respuestas de las APIs y seleccionaremos los datos que nos interesan. No olvides seguirme si no quieres perderte las próximas entregas, ¡un saludo!


Índice del curso

1. Presentación
2. Cómo empezar: llamadas a APIs
3. Envolturas

Sort:  

De verdad muy bueno, lo estoy siguiendo, pienso hacer mi bot en ODOO con Django :D

excelente trabajo amigo, vengo entrando a python y andaba investigando sobre programacion en criptomonedas, y no sabes lo útil l que es encontrarse con estos valiosos contenidos, que sirven de guia. felicidades por éste magnifico tutorial, saludos desde México.

Hola mondeja, muy interesante vuestro aporte, me llama mucho la atención.

Estoy iniciándome en el mundo de la programación y desde hace un buen rato ya me había interesado las criptomonedas. Como cualquier neófito en el asunto estoy lleno de dudas, estoy tratando de ejecutar en el NINJA-IDE y me aparece un error.

¿Alguna recomendación adicional? Muchas gracias de antemano.

SublimeText y ejecutar desde consola, es como más se aprende. Me alegro que te guste, un saludo.

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.034
BTC 63463.10
ETH 3243.17
USDT 1.00
SBD 4.45