Banner Api

# 🔑 Radix API

Desde principios del año 2022, y tras una renovación completa, Radix nos ofrece al menos tres maneras diferentes de acceder a los datos de la red. Cada una de las formas responde a casos de uso diferentes y brindan la posibilidad a los desarrolladores acotar el acceso a datos a las necesidades de su proyecto.

  • Core API: está diseñada para el acceso de bajo nivel al estado del libro mayor, proporciona herramientas de construcción de transacciones y permite firmar mensajes con la clave privada del nodo, donde está habilitado.
  • System API: está diseñada para la supervisión y el uso por parte de los corredores de nodos.
  • Gateway API: esta puerta de enlace esta pensada para la creación de Wallets y Explorers, en principio es a la que le vamos a dar atención en la Academia ya que nos permite de forma sencilla y fácil acceder a los datos de las cuentas y transacciones realizadas en la red.

# Gateway API

El Gateway proporciona la API pública para Wallets y Explorers. Maneja las consultas de lectura utilizando la base de datos y mapea las solicitudes de construcción y envío a la API central de uno o más nodos completos. Radix ofrece un nodo Gateway para pequeñas pruebas pero recomienda que si realizamos un proyecto serio deberíamos correr nuestro propio nodo Gateway.

Una opción genial y que recomiendo es, centrarnos en el desarrollo de nuestra DApp, y dejar a otros el desarrollo y la implementación de la infraestructura. Para ello contamos con proyectos alucinantes como Clana.io (opens new window) quien pone a nuestra disposición una puerta de entrada a Radix escalable y altamente disponible.

# ¿Qué es una API?

El término API es una abreviatura de Application Programming Interfaces, que en español significa interfaz de programación de aplicaciones. Se trata de un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar el software de las aplicaciones, permitiendo la comunicación entre dos aplicaciones de software a través de un conjunto de reglas.

Así pues, podemos hablar de una API como una especificación formal que establece cómo un módulo de un software se comunica o interactúa con otro para cumplir una o muchas funciones.

En nuestro caso nos permite interactuar con la red pública de Radix. Nos permite realizar consultas o enviar transacciones.

En este curso solo vamos a crear ejemplos con JavaScript, NodeJs y Firebase Functions.

Os dejo un ejemplo de acceso a la API de pruebas de Radix, utilizamos el módulo node-fetch para NodeJs:

import fetch from 'node-fetch';

var raw = JSON.stringify({"network_identifier": {"network": "mainnet"},
           "account_identifier": {"address": "rdx1qspqp0nyg3a3dj7e8vkd2ecxrgnrgvsl4d72efx2a4jwavfn995652c7f6uqy"},
           "cursor":"3",
           "limit": 1});


var requestOptions = {
  method: 'POST',
  headers: {
    "Content-Type": "application/json",
    "x-radixdlt-target-gw-api": "1.0.3",
  },
  body: raw,
  redirect: 'follow'
};

const response = await fetch('https://mainnet.radixdlt.com/account/transactions', requestOptions);
const data = await response.json();

console.log(data.transactions);

# Enlaces API