Wie man in 30 Minuten eine REST API in C++ schreibt: für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Warum C++ für REST API nicht beängstigend ist



Viele Anfänger-Entwickler denken, dass C++ zu komplex für die Erstellung von Webservices ist. Allerdings bietet modernes C++ (ab dem Standard C++11) leistungsstarke und elegante Werkzeuge für die Entwicklung von Hochleistungs-REST-APIs. In dieser Anleitung erstellen wir in 30 Minuten eine vollwertige REST API in C++ unter Verwendung der leichtgewichtigen Bibliothek Crow.



Wir werden lernen, wie man den Server einrichtet, GET- und POST-Anfragen verarbeitet, mit JSON arbeitet und Daten zurückgibt. Am Ende des Artikels haben Sie einen funktionierenden Prototypen, den Sie als Grundlage für Ihre eigenen Projekte verwenden können.



Was ist eine REST API?



REST (Representational State Transfer) ist ein Architekturstil für die Erstellung von Webservices. REST APIs verwenden HTTP-Methoden (GET, POST, PUT, DELETE) zur Verwaltung von Ressourcen. Daten werden normalerweise im JSON-Format übertragen.



1. Umgebungsvorbereitung: Installation der Bibliotheken



Für einen schnellen Start verwenden wir die Bibliothek Crow – ein minimalistisches C++ Webframework, das keine komplexe Einrichtung erfordert. Wir benötigen auch eine Bibliothek für die Arbeit mit JSON – nlohmann/json.



Installation der Abhängigkeiten (Linux/macOS)



# Installieren der erforderlichen Paketesudo apt-get install libboost-all-dev cmake g++

# Herunterladen von Crow (Single-Header-Version)wget https://raw.githubusercontent.com/CrowCpp/Crow/master/include/crow.h

# Herunterladen der JSON-Bibliothekwget https://github.com/nlohmann/json/releases/download/v3.11.2/json.hpp


Installation der Abhängigkeiten (Windows mit MinGW)



Für Windows verwenden Sie vcpkg:



vcpkg install crowvcpkg install nlohmann-json


2. Erstellen eines einfachen HTTP-Servers in C++



Beginnen wir mit einem Basisserver, der auf Anfragen antwortet. Erstellen Sie eine Datei main.cpp:



#include "crow.h"

int main() { crow::SimpleApp app;

// Einfache GET-Route CROW_ROUTE(app, "/")([](){ return "Hallo Welt! REST API in C++ funktioniert!"; });

// Server auf Port 8080 starten app.port(8080).multithreaded().run();}


Kompilieren und starten Sie:



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


Öffnen Sie den Browser und gehen Sie zu http://localhost:8080. Sie sehen eine Begrüßungsnachricht.



3. Hinzufügen von JSON-Verarbeitung und CRUD-Operationen



Jetzt fügen wir JSON-Unterstützung hinzu und implementieren eine einfache In-Memory-Datenbank zur Speicherung von Benutzern.



JSON-Unterstützung aktivieren



#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;


GET-Route zum Abrufen der Benutzerliste



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());});


POST-Route zum Erstellen eines neuen Benutzers



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());});


DELETE-Route zum Löschen eines Benutzers





                
                

Blogs

Buchempfehlungen