Puedes Usar Golf como un Framework Web para C

Descubre cómo usar Golf en modo extendido para integrar código C en aplicaciones web de manera eficiente y segura, con ejemplos prácticos y configuración en Nginx.

viernes, 7 de marzo de 2025 • 2 min de lectura • Equipo Q2BSTUDIO

Empresa-Software-Apps

Golf tiene un modo extendido que permite utilizar código en C directamente. Normalmente, esto no está permitido, pero si usas la instrucción extended-mode en tu archivo .golf, podrás llamar código en C desde él.

En modo extendido, Golf actúa como un framework web para el lenguaje de programación C, permitiendo una mayor flexibilidad en el desarrollo de aplicaciones web basadas en este lenguaje.

A continuación, presentamos un ejemplo de cómo usar Golf como un framework web para C, creando una aplicación sencilla que calcula el factorial de un número y expone esta funcionalidad a través de una aplicación web.

Para crear la aplicación, primero generamos la estructura de archivos necesaria:

mkdir -p c-for-web

cd c-for-web

Luego, creamos una nueva aplicación en Golf:

gg -k fact

Después, guardamos el siguiente código en un archivo llamado calc-fact.golf. Este archivo define el servicio web que interactuará con los clientes y llamará a la función en C:

extended-mode

%% /calc-fact public

get-param par

string-number par to num

set-number result

call-extended factorial(num, &result)

@Factorial de <<p-out par>> es <<p-num result>>

%%

Luego, creamos un archivo factorial.c con la implementación de la función en C:

#include 'golf.h'

void factorial(gg_num f, gg_num *res) {

*res = 1;

gg_num i;

for (i = 2; i <= f; i++) {

*res *= i;

}

}

También agregamos un archivo factorial.h para declarar la función utilizada en el código de Golf:

void factorial(gg_num f, gg_num *res);

Para compilar y ejecutar el servidor utilizamos:

gg -q

Iniciamos el servidor con:

mgrg fact

Podemos probar la aplicación desde la línea de comandos:

gg -r --req=/calc-fact/par=12 --exec --service

Esto devuelve:

Factorial de 12 es 479001600

Para probarlo en un navegador web, configuramos Nginx, agregando la siguiente línea en el archivo de configuración:

location /fact/ { include /etc/nginx/fastcgi_params; fastcgi_pass unix:///var/lib/gg/fact/sock/sock; }

Reiniciamos Nginx para aplicar los cambios:

sudo systemctl restart nginx

Accediendo a la URL:

https://127.0.0.1/fact/calc-fact/par=8

El resultado será:

Factorial de 8 es 40320

En Q2BSTUDIO, brindamos soluciones tecnológicas avanzadas y desarrollo de software especializado en diversas plataformas y lenguajes, facilitando la implementación de frameworks como Golf para la optimización de aplicaciones web en C. Nuestro equipo de expertos está preparado para ayudarte a desarrollar soluciones robustas y eficientes adaptadas a las necesidades de tu negocio.

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.