Módulos cliente_http y servidor_web — HTTP/1.1
Archivos: stdlib/std/cliente_http.fa, stdlib/std/servidor_web.fa
¿Por qué existen?
Proveen funcionalidad HTTP/1.1 completa tanto para cliente como para servidor. Permiten hacer requests HTTP a APIs web, y también servir contenido web desde programas Forja.
Módulo cliente_http — Cliente HTTP/1.1
| Función | Descripción |
|---|---|
http_get(url) | Realiza una petición GET |
http_post(url, cuerpo, tipo) | Realiza una petición POST con cuerpo |
http_put(url, cuerpo, tipo) | Realiza una petición PUT |
http_delete(url) | Realiza una petición DELETE |
http_patch(url, cuerpo, tipo) | Realiza una petición PATCH |
http_personalizado(metodo, url, headers, cuerpo) | Request HTTP con método y headers personalizados |
Cada función retorna un mapa con las claves: codigo (código de estado HTTP), cuerpo (respuesta como texto), y headers (mapa de headers de respuesta).
Módulo servidor_web — Servidor Web
| Función | Descripción |
|---|---|
servidor_iniciar(puerto, manejador) | Inicia un servidor web en el puerto especificado |
servidor_detener(servidor) | Detiene el servidor web |
respuesta_html(cuerpo, codigo) | Crea una respuesta HTTP con contenido HTML |
respuesta_json(datos, codigo) | Crea una respuesta HTTP con contenido JSON |
respuesta_texto(texto, codigo) | Crea una respuesta HTTP con texto plano |
respuesta_redireccion(url) | Crea una respuesta de redirección (301/302) |
archivo_estatico(ruta) | Sirve un archivo estático con el tipo MIME adecuado |
Ejemplo: Cliente HTTP
📄 api_cliente.fa
// Consultar una API REST
importar cliente_http
variable respuesta = cliente_http.http_get("https://api.github.com/users/gaucho")
escribir_linea("Código: " + respuesta["codigo"])
escribir_linea("Cuerpo: " + respuesta["cuerpo"]) Ejemplo: Servidor Web
📄 servidor.fa
importar servidor_web
funcion manejador(solicitud) &brace;
variable html = "Hola desde Forja!
"
retornar servidor_web.respuesta_html(html, 200)
}
escribir_linea("Servidor en http://localhost:8080")
servidor_web.iniciar(8080, manejador) Casos de uso
- Consumir APIs REST: GitHub API, OpenAI, servicios web externos
- Microservicios: Implementar APIs web simples en Forja
- Prototipado rápido: Servidores web para pruebas y MVPs
- Webhooks: Recibir notificaciones de servicios externos
💡 Alternativas: Para HTTP/2 usá
cliente_h2.fa / servidor_h2.fa. Para HTTP/3 usá cliente_h3.fa. Estos ofrecen mejor rendimiento y multiplexación.