30 मिनट में C++ पर REST API कैसे लिखें: त्वरित आरंभ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

परिचय: REST API के लिए C++ क्यों?

C++ पारंपरिक रूप से सिस्टम प्रोग्रामिंग, गेम और उच्च-लोड अनुप्रयोगों से जुड़ा है। हालाँकि, आधुनिक C++ (C++17 और C++20 मानक) हल्के लाइब्रेरी के साथ मिलकर तेज़ और कुशल वेब सेवाएँ बनाने की अनुमति देता है। यदि आपको REST API की आवश्यकता है जो न्यूनतम विलंबता के साथ प्रति सेकंड हजारों अनुरोधों को संसाधित करता है, तो C++ एक उत्कृष्ट विकल्प है।

इस लेख में हम 30 मिनट में Crow लाइब्रेरी का उपयोग करके C++ में एक पूर्ण REST API बनाएंगे। यह एक मिनी-फ्रेमवर्क है, जो Python Flask जैसा दिखता है, लेकिन C++ में लिखा गया है। हम रूट्स सेट करेंगे, JSON पार्स करना सीखेंगे और प्रतिक्रियाएँ देना सीखेंगे।

चरण 1: वातावरण तैयार करना और Crow स्थापित करना

काम करने के लिए हमें C++17 (GCC 7+, Clang 5+, MSVC 2019+) के समर्थन वाले कंपाइलर और vcpkg या Conan डिपेंडेंसी मैनेजर की आवश्यकता होगी। सबसे आसान तरीका है Crow को हेडर-ओनली फ़ाइल के रूप में डाउनलोड करना।

1.1 vcpkg के माध्यम से स्थापना (अनुशंसित)

यदि आपके पास vcpkg स्थापित है, तो कमांड चलाएँ:

vcpkg install crow

फिर कंपाइल करते समय लाइब्रेरी का पथ निर्दिष्ट करें:

g++ main.cpp -std=c++17 -I/path/to/vcpkg/installed/x64-linux/include -lpthread -o server

1.2 मैन्युअल स्थापना (header-only)

GitHub से Crow का नवीनतम संस्करण डाउनलोड करें। आपको केवल crow_all.h फ़ाइल (सब कुछ शामिल है) की आवश्यकता है। इसे अपने प्रोजेक्ट फ़ोल्डर में रखें।

चरण 2: दो एंडपॉइंट के साथ एक सरल सर्वर बनाना

हम एक न्यूनतम सर्वर लिखेंगे जो पोर्ट 8080 पर सुनता है और GET और POST अनुरोधों का जवाब देता है। main.cpp फ़ाइल बनाएँ।

2.1 सर्वर का बेसिक कोड

#include "crow_all.h"

int main() {
    crow::SimpleApp app;

    // GET-एंडपॉइंट: रूट पेज
    CROW_ROUTE(app, "/")([](){
        return "Hello, REST API on C++!";
    });

    // GET-एंडपॉइंट: /api/status
    CROW_ROUTE(app, "/api/status")([](){
        crow::json::wvalue response;
        response["status"] = "ok";
        response["message"] = "Server is running";
        return response;
    });

    app.port(8080).multithreaded().run();
}

कंपाइल करें और चलाएँ:

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

अब ब्राउज़र में http://localhost:8080/api/status पर जाएँ — आपको JSON प्रतिक्रिया दिखाई देगी।

चरण 3: JSON के साथ काम करना और POST अनुरोधों को संसाधित करना

वास्तविक REST API का अर्थ है क्लाइंट से डेटा प्राप्त करना। हम अनुरोध के बॉडी में JSON प्राप्त करना सीखेंगे।

3.1 उपयोगकर्ता बनाने के लिए POST-एंडपॉइंट

#include "crow_all.h"
#include <string>
#include <unordered_map>

int main() {
    crow::SimpleApp app;
    // सरल in-memory स्टोरेज (प्रदर्शन के लिए)
    std::unordered_map<int, std::string> users;
    int next_id = 1;

    // POST /api/users — उपयोगकर्ता बनाएँ
    CROW_ROUTE(app, "/api/users").methods("POST"_method)([&](const crow::request& req){
        auto body = crow::json::load(req.body);
        if (!body || !body.has("name")) {
            return crow::response(400, "Missing 'name' field");
        }
        std::string name = body["name"].s();
        int id = next_id++;
        users[id] = name;

        crow::json::wvalue response;
        response["id"] = id;
        response["name"] = name;
        return crow::response(201, response);
    });

    // GET /api/users/{id} — उपयोगकर्ता प्राप्त करें
    CROW_ROUTE(app, "/api/users/<int>")([&](int id){
        auto it = users.find(id);
        if (it == users.end()) {
            return crow::response(404, "User not found");
        }
        crow::json::wvalue response;
        response["id"] = id;
        response["name"] = it->second;
        return crow::response(respon
```                

ब्लॉग

पुस्तक अनुशंसाएँ