Antes de empezar
Nivel principiante. Necesitas un editor y Node.js, que ejecuta JavaScript, con fetch, AbortSignal.timeout y server.closeAllConnections, o Python 3.
Abre una terminal: una ventana donde escribes órdenes para tu ordenador. Sitúate en la carpeta del archivo.
HTTP son las reglas con las que un programa envía una petición y recibe una respuesta.
Una API define cómo pedir operaciones a otro programa. Aquí practicarás ese intercambio dentro de tu ordenador.
JSON es un formato de texto para compartir datos. Usaremos el campo input para enviar texto.
1. Guarda el ejemplo de JavaScript
Guarda el bloque en primera-llamada.mjs. Contiene un servidor simulado, que recibe datos, y un cliente, que los envía.
fetch envía el texto. JSON.stringify lo convierte a JSON. response.ok comprueba el estado HTTP antes de leer la respuesta.
AbortSignal.timeout limita la espera. El bloque finally cierra el servidor al terminar, incluso si ocurre un error.
import { createServer } from "node:http";
// Simulador local: recibe JSON, no llama a un modelo.
const server = createServer(async (request, response) => {
let body = "";
for await (const chunk of request) body += chunk;
const { input } = JSON.parse(body);
response.writeHead(200, { "Content-Type": "application/json" });
response.end(JSON.stringify({ text: "Solicitud recibida: " + input }));
});
await new Promise(resolve => server.listen(0, "127.0.0.1", resolve));
const { port } = server.address();
try {
const response = await fetch("http://127.0.0.1:" + port, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ input: "Hola, IA" }),
signal: AbortSignal.timeout(3000)
});
if (!response.ok) throw new Error("HTTP " + response.status);
const data = await response.json();
if (typeof data.text !== "string") throw new Error("Respuesta inválida");
console.log(data.text);
} finally {
server.closeAllConnections();
await new Promise(resolve => server.close(resolve));
}Qué deberías ver: Un archivo primera-llamada.mjs completo. Comprueba que termina en .mjs y conserva todo el bloque.
2. Ejecuta el archivo de JavaScript
Escribe node primera-llamada.mjs en la terminal. El programa envía «Hola, IA» y comprueba que la respuesta contiene texto.
El servidor escucha solo en tu ordenador y elige un puerto libre. No genera contenido con IA.
Qué deberías ver: Solicitud recibida: Hola, IA. Después vuelve el indicador de la terminal; el servidor ya está cerrado.
3. Guarda la alternativa de Python
Paso opcional: guarda el bloque en primera_llamada.py si quieres repetir la práctica con Python.
HTTPServer recibe los datos. urllib.request envía la petición. json.load lee la respuesta como datos de Python.
import json
import threading
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.request import Request, urlopen
class Handler(BaseHTTPRequestHandler):
def do_POST(self):
length = int(self.headers["Content-Length"])
data = json.loads(self.rfile.read(length))
body = json.dumps({"text": "Solicitud recibida: " + data["input"]})
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(body.encode())
def log_message(self, *args):
pass
server = HTTPServer(("127.0.0.1", 0), Handler)
thread = threading.Thread(target=server.serve_forever, daemon=True)
thread.start()
try:
payload = json.dumps({"input": "Hola, IA"}).encode()
request = Request(
"http://127.0.0.1:" + str(server.server_port),
data=payload, headers={"Content-Type": "application/json"}
)
with urlopen(request, timeout=3) as response:
data = json.load(response)
if not isinstance(data.get("text"), str):
raise ValueError("Respuesta inválida")
print(data["text"])
finally:
server.shutdown()
server.server_close()
thread.join()Qué deberías ver: Un archivo primera_llamada.py completo. Comprueba que conserva los espacios al principio de cada línea.
4. Ejecuta el archivo de Python
Escribe python primera_llamada.py en la terminal. El archivo abre el servidor, envía una petición y lo cierra.
Qué deberías ver: Solicitud recibida: Hola, IA. Debe coincidir con la salida del ejemplo de JavaScript.
Errores comunes
«node» o «python» no se reconoce: instala el programa desde su sitio oficial. Abre después una terminal nueva.
«Archivo no encontrado»: abre la terminal en la carpeta donde lo guardaste. Revisa el nombre y la extensión.
Una función no existe: comprueba que tu instalación admite las funciones de «Antes de empezar». Consulta la documentación enlazada.
Qué has aprendido
Has enviado JSON y validado una respuesta HTTP. También has limitado la espera y cerrado un servidor local.
Una respuesta HTTP correcta no garantiza datos útiles. Comprueba siempre el formato que espera tu aplicación.
Para conectar un proveedor real, consulta su API, su autenticación y sus condiciones. Cambiar solo la dirección no basta.
Una clave de API identifica tu acceso al servicio. Guárdala en el servidor y evita publicarla en archivos compartidos.
Siguiente paso
Continúa con cómo elegir un modelo de ia con pruebas comparables.
Fuentes y verificación
Redactado con IA a partir de documentación oficial. Fuentes revisadas el 2026-10-04. Ejemplos locales ejecutados; consulta su alcance arriba. No se atribuye una prueba con un proveedor real ni una revisión humana.
Para seguir aprendiendo
Consulta versiones oficiales antes de actualizar