30 मिनट में C++ पर REST API कैसे लिखें: व्यवहार में

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

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

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

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



REST API (Representational State Transfer) नेटवर्क पर वितरित एप्लिकेशन के घटकों के बीच इंटरैक्शन की एक आर्किटेक्चरल शैली है। आमतौर पर REST API लिखने के लिए Python (Flask, FastAPI), JavaScript (Express.js) या Java चुना जाता है। हालांकि, C++ अनुचित रूप से उपेक्षित रहता है। और यह गलत है।



Crow, cpp-httplib और Drogon जैसी आधुनिक लाइब्रेरीज़ आपको सचमुच आधे घंटे में C++ पर उच्च-प्रदर्शन वाले REST API बनाने की अनुमति देती हैं। C++ की गति और न्यूनतम मेमोरी खपत के कारण, ऐसे API इसके लिए आदर्श हैं:



  • उच्च प्रदर्शन आवश्यकताओं वाले माइक्रोसर्विसेज;
  • एम्बेडेड सिस्टम और IoT उपकरण;
  • बड़ी संख्या में समानांतर अनुरोधों को संसाधित करना;
  • गेटवे और प्रॉक्सी सर्वर का कार्यान्वयन।


इस लेख में हम व्यवहार में Crow लाइब्रेरी का उपयोग करके C++ पर एक सरल REST API बनाएंगे। आप देखेंगे कि यह Python से अधिक कठिन नहीं है, और गति में कई गुना तेज है।



पर्यावरण सेटअप और Crow लाइब्रेरी की स्थापना



हम अपने प्रोजेक्ट के लिए Crow का उपयोग करेंगे - एक न्यूनतम और बहुत तेज़ C++ माइक्रो-वेब फ्रेमवर्क। यह रूटिंग, मिडलवेयर, JSON-सीरियलाइज़ेशन का समर्थन करता है और Windows, Linux और macOS पर काम करता है।



क्या आवश्यक होगा

  • C++17 या नया कंपाइलर (GCC 8+, Clang 7+, MSVC 2019+);
  • CMake संस्करण 3.14+;
  • asio लाइब्रेरी (Crow के साथ स्वचालित रूप से स्थापित होती है);
  • nlohmann/json लाइब्रेरी (JSON के साथ काम करने के लिए)।


Crow की स्थापना



Crow एक header-only लाइब्रेरी है। इसका मतलब है कि आपको इसे कंपाइल करने की आवश्यकता नहीं है - बस हेडर फ़ाइलों को प्रोजेक्ट में कॉपी करें। सबसे आसान तरीका CMake FetchContent के माध्यम से है।



प्रोजेक्ट संरचना बनाएं:

rest-api-cpp/├── CMakeLists.txt├── src/│   └── main.cpp└── include/


CMakeLists.txt फ़ाइल की सामग्री:

cmake_minimum_required(VERSION 3.14)project(rest_api_cpp)

set(CMAKE_CXX_STANDARD 17)

# Crow को शामिल करेंinclude(FetchContent)FetchContent_Declare( crow GIT_REPOSITORY https://github.com/ipkn/crow.git GIT_TAG master)FetchContent_MakeAvailable(crow)

# nlohmann/json को शामिल करेंFetchContent_Declare( json GIT_REPOSITORY https://github.com/nlohmann/json.git GIT_TAG v3.11.2)FetchContent_MakeAvailable(json)

add_executable(rest_api src/main.cpp)target_link_libraries(rest_api PRIVATE Crow::Crow nlohmann_json::nlohmann_json)


उसके बाद निष्पादित करें:

mkdir build && cd buildcmake ..make


कोड लिखने के लिए सब कुछ तैयार है।



Crow का उपयोग करके C++ पर बेसिक REST API बनाना



हम कार्य सूची (Task Manager) प्रबंधित करने के लिए एक सरल API लिखेंगे। यह चार मुख्य HTTP-मेथड का समर्थन करेगा: GET, POST, PUT, DELETE।



सर्वर का ढांचा और GET-एंडपॉइंट



#include <crow.h>#include <nlohmann/json.hpp>#include <vector>#include <string>

using json = nlohmann::json;

struct Task { int id; std::string title; bool completed;};

std::vector<Task> tasks = { {1, "Crow सीखें", false}, {2, "REST API लिखें", false}};int next_id = 3;

int main() { crow::SimpleApp app;

// GET /tasks — सभी कार्य प्राप्त करें CROW_ROUTE(app, "/tasks") .methods("GET"_method) ([](){ json j = json::array(); for (const auto& t : tasks) { j.push_back({{"id", t.id}, {"title", t.title}, {"completed", t.completed}}); } return crow::response(j.dump()); });

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


यह कोड पोर्ट 8080 पर HTTP-सर्वर शुरू करता है। /tasks पर GET-अनुरोध पर

ब्लॉग

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