परिचय: C++ में REST API क्यों लिखें?
C++ पारंपरिक रूप से सिस्टम प्रोग्रामिंग, गेम्स और उच्च-लोड वाले अनुप्रयोगों से जुड़ा हुआ है। हालाँकि, आधुनिक C++ (C++11/17/20 मानकों से शुरू) वेब सेवाओं के तेजी से विकास के लिए सभी आवश्यक उपकरण प्रदान करता है। C++ में REST API लिखना तब उचित हो सकता है जब अधिकतम प्रदर्शन, कम मेमोरी खपत, या मौजूदा C++ कोड (जैसे कंप्यूटर विज़न या संख्यात्मक गणना पुस्तकालयों) के साथ एकीकरण की आवश्यकता हो।
इस गाइड में, हम 30 मिनट में C++ में एक पूर्ण REST API बनाएंगे। इसके लिए हम हल्की और सुरुचिपूर्ण लाइब्रेरी Crow का उपयोग करेंगे। इसे जटिल सेटअप की आवश्यकता नहीं है, यह रूटिंग, JSON (json.hpp के माध्यम से) और मिडलवेयर का समर्थन करता है। लेख के अंत तक, आपके पास तीन एंडपॉइंट्स के साथ एक कार्यशील सर्वर होगा।
चरण 1: पर्यावरण सेटअप और Crow की स्थापना
काम करने के लिए हमें C++17 समर्थन वाले कंपाइलर (g++ 7+, clang 5+ या MSVC 2017+) और CMake बिल्ड सिस्टम की आवश्यकता है। Crow एक "header-only" लाइब्रेरी है, जो इंस्टॉलेशन को सरल बनाती है: बस एक हेडर फ़ाइल डाउनलोड करें।
स्थापना
- Crow का नवीनतम संस्करण GitHub से डाउनलोड करें (या
git cloneका उपयोग करें)। includeफ़ोल्डर को अपने प्रोजेक्ट में कॉपी करें।- JSON के साथ काम करने के लिए
nlohmann/json(header-only भी) स्थापित करें।
प्रोजेक्ट संरचना
my_rest_api/├── CMakeLists.txt├── main.cpp└── include/ ├── crow.h └── json.hppCMakeLists.txt
cmake_minimum_required(VERSION 3.10)project(my_rest_api)
set(CMAKE_CXX_STANDARD 17)
include_directories(include)
add_executable(my_rest_api main.cpp)target_link_libraries(my_rest_api pthread)बिल्ड: mkdir build && cd build && cmake .. && make
चरण 2: बेसिक सर्वर और रूट्स बनाना
Crow रूट्स को परिभाषित करने के लिए एक सरल DSL का उपयोग करता है। आइए एक सर्वर बनाएं जो पोर्ट 8080 पर सुनता है और GET और POST अनुरोधों को संभालता है।
सर्वर का बेसिक कोड
#include "crow.h"#include <string>
int main() { crow::SimpleApp app;
// सरल GET रूट CROW_ROUTE(app, "/")([](){ return "C++ पर REST API में आपका स्वागत है!"; });
// पथ पैरामीटर के साथ GET CROW_ROUTE(app, "/user/<int>")([](int user_id){ return crow::response("उपयोगकर्ता ID: " + std::to_string(user_id)); });
app.port(8080).multithreaded().run();}यह कोड दो एंडपॉइंट बनाता है। crow::SimpleApp एप्लिकेशन का मुख्य वर्ग है। multithreaded() विधि थ्रेड पूल में अनुरोधों की प्रोसेसिंग को सक्षम करती है। सर्वर चलाएं और ब्राउज़र में http://localhost:8080/ जांचें।
रूट्स में पैरामीटर के प्रकार
Crow पथ में निम्नलिखित पैरामीटर प्रकारों का समर्थन करता है:
<int>— पूर्णांक<string>— स्ट्रिंग<path>— पथ का शेष भाग (उदाहरण:/files/<path>)<float>— फ्लोटिंग-पॉइंट संख्या
चरण 3: JSON और POST अनुरोधों के साथ काम करना
एक वास्तविक REST API को JSON प्राप्त करने और वापस करने में सक्षम होना चाहिए। nlohmann/json को शामिल करें और CRUD-जैसे ऑपरेशन लागू करें।
उदाहरण: मेमोरी में सरल "डेटाबेस"
#include "crow.h"#include "json.hpp"#include <unordered_map>#include <memory>
using json = nlohmann::json;
struct Task { int id; std::string title; bool completed;};
std::unordered_map<int, std::shared_ptr<Task>> tasks;int next_id = 1;
int main() { crow::SimpleApp app;
// GET /tasks — सभी कार्य प्राप्त करें CROW_RO
```