CGI con Jetforce y Python

Esta cápsula gemini funciona usando JetForce como servidor, más que nada porque me pareció la oferta más completa y accesible para mi a la hora de montar la cápsula.

Una de las cosas que buscaba era el poder ejecutar los llamados scripts CGIs (Common Gateway Interface) que permite que las cosas sean un poco más interactivas, permitiendo enviar comandos mediante parámetros en la URI o bien con inputs directos, generando al vuelo contenido que luego se verá en el navegador Gemini de turno.

Por otro lado, aquí el que os escribe, lleva la tira de años programando en Python profesionalmente, con lo que éste lenguaje para mi es bastante asequible para hacer cualquier cosa.

Si vais a la página de inicio, en la sección "Qué puedes encontrar aquí" veréis que hay algo nuevo, un acceso al nuevo servicio que he creado en esta cápsula, os lo enlazo aquí:

Búsqueda en el diccionario de la RAE

Es un servicio muy sencillo, quizás poco práctico debido a que la web de la RAE es bastante accesible y ligera, pero para aquellos que ya os da alergia la triple W, puede que os venga bien.

JetForce admite que hace las cosas con CGI un poco a su modo, pero que a la larga simplifica y funciona; yo personalmente creo que es cierto. Para empezar, lo que hay que tener en cuenta es que para JetForce los scripts CGI han de estar siempre en un directorio llamado cgi-bin; además, el script a llamar deberá tener extensión .cgi o de lo contrario, veremos las tripas del fichero, no el resultado de su proceso.

Si todo esto va bien, JetForce nos pondrá una serie de variables de entorno con la que podremos saber la URI utilizada, los parámetros e incluso si nuestro cliente está autenticado y qué certificado está usando. A su vez, JetForce espera que generemos por la salida estándar la respuesta Gemini completa, es decir, cabecera de código y todo lo demás.

Y con esto, tenemos ya un servicio Gemini que nos solicita una palabra, recoge la respuesta de la RAE y la genera como salida Gemini. Espero poder poner pronto un repo con este código de ejemplo y quizás me anime hasta hacer un tutorial.

Atrás 🔙

Proxied content from gemini://gemini.astropirados.space/gemlog/cgi-con-jetforce-y-python.gmi

Gemini request details:

Original URL
gemini://gemini.astropirados.space/gemlog/cgi-con-jetforce-y-python.gmi
Status code
Success
Meta
text/gemini
Proxied by
kineto

Be advised that no attempt was made to verify the remote SSL certificate.