Comment écrire une API REST en C++ en 30 minutes : pour débutants

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi C++ pour une API REST n'est pas effrayant



De nombreux développeurs débutants pensent que C++ est trop complexe pour créer des services web. Cependant, le C++ moderne (à partir de la norme C++11) fournit des outils puissants et élégants pour développer des API REST haute performance. Dans ce guide, nous allons créer en 30 minutes une API REST complète en C++ en utilisant la bibliothèque légère Crow.



Nous verrons comment configurer le serveur, traiter les requêtes GET et POST, travailler avec JSON et renvoyer des données. À la fin de l'article, vous aurez un prototype fonctionnel que vous pourrez utiliser comme base pour vos projets.



Qu'est-ce qu'une API REST ?



REST (Representational State Transfer) est un style architectural pour créer des services web. Une API REST utilise les méthodes HTTP (GET, POST, PUT, DELETE) pour gérer les ressources. Les données sont généralement transmises au format JSON.



1. Préparation de l'environnement : installation des bibliothèques



Pour un démarrage rapide, nous utiliserons la bibliothèque Crow — un framework web C++ minimaliste qui ne nécessite pas de configuration complexe. Nous aurons également besoin de la bibliothèque pour travailler avec JSON — nlohmann/json.



Installation des dépendances (Linux/macOS)



# Installation des paquets nécessairessudo apt-get install libboost-all-dev cmake g++

# Téléchargement de Crow (version à en-tête unique)wget https://raw.githubusercontent.com/CrowCpp/Crow/master/include/crow.h

# Téléchargement de la bibliothèque JSONwget https://github.com/nlohmann/json/releases/download/v3.11.2/json.hpp


Installation des dépendances (Windows avec MinGW)



Pour Windows, utilisez vcpkg :



vcpkg install crowvcpkg install nlohmann-json


2. Création d'un serveur HTTP simple en C++



Commençons par un serveur de base qui répondra aux requêtes. Créez le fichier main.cpp :



#include "crow.h"

int main() { crow::SimpleApp app;

// Route GET simple CROW_ROUTE(app, "/")([](){ return "Bonjour le monde ! L'API REST en C++ fonctionne !"; });

// Lancement du serveur sur le port 8080 app.port(8080).multithreaded().run();}


Compilez et exécutez :



g++ -std=c++17 -pthread main.cpp -o api_server./api_server


Ouvrez le navigateur et allez sur http://localhost:8080. Vous verrez un message de bienvenue.



3. Ajout du traitement JSON et des opérations CRUD



Ajoutons maintenant la prise en charge de JSON et implémentons une simple base de données en mémoire pour stocker les utilisateurs.



Activation de la prise en charge JSON



#include "crow.h"#include "json.hpp"#include <vector>#include <string>

using json = nlohmann::json;

struct User { int id; std::string name; std::string email;};

std::vector<User> users;int next_id = 1;


Route GET pour obtenir la liste des utilisateurs



CROW_ROUTE(app, "/users")([](){    json response = json::array();    for (const auto& user : users) {        response.push_back({            {"id", user.id},            {"name", user.name},            {"email", user.email}        });    }    return crow::response(response.dump());});


Route POST pour créer un nouvel utilisateur



CROW_ROUTE(app, "/users").methods("POST"_method)([](const crow::request& req){    auto body = json::parse(req.body);

User new_user; new_user.id = next_id++; new_user.name = body["name"]; new_user.email = body["email"];

users.push_back(new_user);

json response = { {"id", new_user.id}, {"name", new_user.name}, {"email", new_user.email} };

return crow::response(201, response.dump());});


Route DELETE pour supprimer un utilisateur





                
                

Blogs

Book Recommendations