19. API Rick&Morty

 

Tutorial 19: API Rick & Morty - Conociendo nuestro recurso

馃寪 Introducci贸n a la API Rick & Morty

¡Excelente noticia! Vamos a utilizar una API p煤blica y completamente gratuita que contiene toda la informaci贸n de la famosa serie Rick & Morty. Esta API es perfecta para practicar porque:

✅ No requiere autenticaci贸n
✅ Es completamente gratuita
✅ Tiene datos reales y actualizados
✅ Est谩 muy bien documentada
✅ Es perfecta para proyectos de aprendizaje

馃敆 Accediendo a la documentaci贸n oficial

Vamos a la p谩gina web oficial de la API:

text

https://rickandmortyapi.com/

Caracter铆sticas principales de la API:

  • Base URL: https://rickandmortyapi.com/api

  • Tipo: REST API

  • Formato de respuesta: JSON

  • Rate limiting: Sin l铆mites conocidos (para uso educativo)

馃摎 Explorando la documentaci贸n

1. Endpoints disponibles

La API tiene 3 endpoints principales:

Endpoint

Descripci贸n

Ejemplo

/character

Personajes de la serie

https://rickandmortyapi.com/api/character

/location

Ubicaciones del universo

https://rickandmortyapi.com/api/location

/episode

Episodios de la serie

https://rickandmortyapi.com/api/episode

2. Estructura de la respuesta

Cuando hacemos una petici贸n a /character, obtenemos:

json

{

  "info": {

    "count": 826,

    "pages": 42,

    "next": "https://rickandmortyapi.com/api/character?page=2",

    "prev": null

  },

  "results": [

    {

      "id": 1,

      "name": "Rick Sanchez",

      "status": "Alive",

      "species": "Human",

      "type": "",

      "gender": "Male",

      "origin": {...},

      "location": {...},

      "image": "https://rickandmortyapi.com/api/character/avatar/1.jpeg",

      "episode": [...],

      "url": "https://rickandmortyapi.com/api/character/1",

      "created": "2017-11-04T18:48:46.250Z"

    },

    // ... m谩s personajes

  ]

}

馃攳 Probando la API manualmente

Opci贸n 1: Navegador web

Simplemente visita en tu navegador:

text

https://rickandmortyapi.com/api/character

Ver谩s el JSON completo con los primeros 20 personajes.

Opci贸n 2: Usando fetch en la consola del navegador

Abre las herramientas de desarrollo (F12) y en la pesta帽a "Console", escribe:

javascript

// Prueba r谩pida

fetch('https://rickandmortyapi.com/api/character')

  .then(response => response.json())

  .then(data => console.log(data.results[0]));

Opci贸n 3: Herramientas como Postman o Insomnia

Si quieres probar m谩s a fondo, estas herramientas son excelentes para hacer peticiones HTTP.

馃搳 Informaci贸n 煤til de cada personaje

Campos que recibiremos por cada personaje:

Campo

Tipo

Descripci贸n

Ejemplo

id

number

ID 煤nico

1

name

string

Nombre completo

"Rick Sanchez"

status

string

Estado de vida

"Alive", "Dead", "unknown"

species

string

Especie

"Human", "Alien"

type

string

Subtipo

"" (vac铆o si no tiene)

gender

string

G茅nero

"Male", "Female"

origin

object

Lugar de origen

{"name": "Earth", "url": "..."}

location

object

脷ltima ubicaci贸n

{"name": "Earth", "url": "..."}

image

string

URL de la imagen

"https://.../avatar/1.jpeg"

episode

array

Lista de episodios

["https://.../episode/1", ...]

url

string

URL del personaje

"https://.../character/1"

created

string

Fecha creaci贸n

"2017-11-04T18:48:46.250Z"

馃幆 Lo que necesitamos para nuestro proyecto

Para nuestra aplicaci贸n, vamos a utilizar principalmente:

  1. name → Para mostrar el nombre

  2. image → Para mostrar la foto

  3. status → Para indicar si est谩 vivo o muerto

  4. species → Para mostrar la especie

  5. episode.length → Para contar episodios

馃攧 Paginaci贸n de la API

La API usa paginaci贸n. Cada p谩gina contiene 20 personajes. Para navegar:

javascript

// Primera p谩gina

https://rickandmortyapi.com/api/character


// Segunda p谩gina

https://rickandmortyapi.com/api/character?page=2


// Podemos ver cu谩ntas p谩ginas hay en "info.pages"

馃挕 Funcionalidades avanzadas (opcional)

Si quieres expandir el proyecto m谩s adelante:

1. B煤squeda por nombre

text

https://rickandmortyapi.com/api/character/?name=rick

2. Filtros m煤ltiples

text

https://rickandmortyapi.com/api/character/?name=rick&status=alive&species=human

3. Obtener personaje espec铆fico

text

https://rickandmortyapi.com/api/character/1

馃洜️ Preparando nuestro c贸digo

Modifica tu funci贸n reqApi en App.js:

javascript

const reqApi = async () => {

  console.log("Llamando a la API...");

  

  // URL de la API

  const api = await fetch("https://rickandmortyapi.com/api/character");

  

  // Convertir respuesta a JSON

  const characterApi = await api.json();

  

  // Ver lo que obtenemos en consola

  console.log("Respuesta completa:", characterApi);

  console.log("Total personajes:", characterApi.info.count);

  console.log("Primer personaje:", characterApi.results[0]);

};

馃И Prueba r谩pida en tu aplicaci贸n

  1. Actualiza tu funci贸n reqApi con el c贸digo anterior

  2. Abre la consola del navegador (F12)

  3. Haz clic en "Buscar personajes"

  4. Deber铆as ver la respuesta de la API en la consola

Lo que ver谩s:

  • Un objeto con propiedades info y results

  • results es un array con 20 objetos (personajes)

  • Cada objeto tiene todas las propiedades que vimos antes

馃摑 Ejemplo de respuesta simplificada:

javascript

// characterApi.results[0] ser铆a:

{

  "id": 1,

  "name": "Rick Sanchez",

  "status": "Alive",

  "species": "Human",

  "image": "https://rickandmortyapi.com/api/character/avatar/1.jpeg",

  "episode": [

    "https://rickandmortyapi.com/api/episode/1",

    "https://rickandmortyapi.com/api/episode/2",

    // ... 51 episodios en total

  ]

}

馃帹 Visualizando lo que vamos a crear

Imagina que por cada personaje mostraremos:

text

┌─────────────────────┐

│  [Imagen Personaje] │

│                     │

│  Nombre: Rick Sanchez│

│  Estado: ● Alive    │

│  Especie: Human     │

│  Episodios: 51      │

└─────────────────────┘

馃敆 Recursos 煤tiles

⚠️ Consideraciones importantes

  1. CORS est谩 habilitado → Podemos hacer fetch directamente desde el navegador

  2. Las im谩genes est谩n alojadas → No necesitamos descargarlas

  3. Los datos son reales → La API se actualiza con nuevos episodios

  4. Es solo para desarrollo → En producci贸n considerar铆as l铆mites de tasa

馃殌 Pr贸ximos pasos

En el siguiente tutorial vamos a:

  1. Almacenar la respuesta de la API en el estado de React

  2. Mostrar los personajes en lugar de la imagen de inicio

  3. Crear componentes para cada tarjeta de personaje


馃挰 Actividad pr谩ctica

Antes de continuar, haz esto:

  1. Ve a https://rickandmortyapi.com/api/character en tu navegador

  2. Examina la estructura JSON

  3. Identifica 3 personajes que reconozcas

  4. Actualiza tu funci贸n reqApi para que muestre solo los nombres en consola

javascript

const reqApi = async () => {

  const api = await fetch("https://rickandmortyapi.com/api/character");

  const characterApi = await api.json();

  

  // Muestra solo los nombres

  characterApi.results.forEach(personaje => {

    console.log(personaje.name);

  });

};

¿Lograste ver la lista de nombres en la consola? ¡Excelente! Est谩s listo para el siguiente paso. 馃専


¿Tienes preguntas sobre c贸mo funciona la API? ¡Es el momento perfecto para aclararlas!


Comentarios

Entradas m谩s populares de este blog

9.3-Tutorial de Componentes React con Props -SSS

9.6-Ciclo de Vida de un Componente React

9-Componentes en React-estado