Aunque C++ no es el primer lenguaje que se nos viene a la cabeza cuando hablamos de servicios web, existen varias bibliotecas que nos permiten construir APIs RESTful de manera sencilla y eficiente. En este post te muestro cómo hacerlo utilizando Crow, una de las librerías más populares para este propósito.
Crow es una microframework para C++ similar a Flask (Python) o Express (Node.js). Es ligera, rápida y permite definir rutas y manejar peticiones HTTP con facilidad.
Vamos a necesitar:
- Un compilador moderno compatible con C++17 o superior.
- CMake (versión 3.14 o superior).
Si usás vcpkg podés instalar Crow fácilmente:
vcpkg install crow
O podés clonar el repositorio:
git clone https://github.com/CrowCpp/crow.git
Veamos un hola mundo :
#include "crow_all.h"
int main()
{
crow::SimpleApp app;
CROW_ROUTE(app, "/")([](){
return "¡Hola, mundo desde C++!";
});
CROW_ROUTE(app, "/suma/<int>/<int>")([](int a, int b){
return crow::response(std::to_string(a + b));
});
app.port(18080).multithreaded().run();
}
¿Qué hace este código?
Define dos rutas: `/` y `/suma/{a}/{b}`.
Devuelve texto plano como respuesta.
Usa crow::SimpleApp para levantar un servidor en el puerto `18080`.
Compilamos con CMake
cmake_minimum_required(VERSION 3.14)
project(servicio_rest_cpp)
set(CMAKE_CXX_STANDARD 17)
add_executable(servicio_rest main.cpp)
target_include_directories(servicio_rest PRIVATE /ruta/a/crow)
Luego:
mkdir build && cd build
cmake ..
make
./servicio_rest
Y ya podés acceder a http://localhost:18080/.
C++ no se queda atrás cuando se trata de crear servicios REST. Con herramientas como Crow, podés construir APIs eficientes, con alto rendimiento y mantenerte en el ecosistema de C++. Perfecto para integrarse con sistemas existentes o para casos donde el rendimiento es crítico.
Dejo link: