ImSQL
C++ 기반 SQL 자동화 및 라이선스 관리 엔진
Loading...
Searching...
No Matches
api_server.hpp
Go to the documentation of this file.
1
13#pragma once
14
15#ifndef API_SERVER_H
16#define API_SERVER_H
17
18#ifdef _WIN32
19#define WIN32_LEAN_AND_MEAN
20#define NOMINMAX
21#endif
22
23#include <memory>
24#include <string>
25#include <functional>
27#include <utils/utils.hpp>
29#include <crow/app.h>
30
31#include "engine/engine.hpp"
33
34namespace engine {
35
39using HandlerFunc = std::function<crow::response(const crow::request&)>;
40
48class ApiServer : public std::enable_shared_from_this<ApiServer> {
49public:
55 ApiServer(const std::string& ip, int port);
56
60 void init();
61
65 void start();
66
70 void stop();
71
78 void addRoute(const std::string& path, crow::HTTPMethod method, HandlerFunc handler);
79
83 crow::response handleFeatureCheck(const crow::request&);
84
88 crow::response handleDemoAdd(const crow::request&);
89
93 crow::response handleExcelUpload(const crow::request&);
94
98 crow::response handleCreateTable(const crow::request& req);
99
103 crow::response handleReadTable(const crow::request& req);
104
108 crow::response handleUpdateTable(const crow::request& req);
109
113 crow::response handleDeleteTable(const crow::request& req);
114
118 crow::response handleJoinTable(const crow::request& req);
119
123 crow::response handleCopyTable(const crow::request& req);
124
128 crow::response handleCreateExcel(const crow::request& req);
129
133 crow::response handleReadExcel(const crow::request& req);
134
138 crow::response handleUpdateExcel(const crow::request& req);
139
143 crow::response handleDeleteExcel(const crow::request& req);
144
145 // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
146 // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ SmartPtr 테스트 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
147
151 crow::response handleSmartPtrShared(const crow::request&);
152
156 crow::response handleSmartPtrUnique(const crow::request&);
157
158 // ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
159
163 crow::response startEngineServer(const crow::request& req);
164
168 crow::response stopEngineServer(const crow::request& req);
169
170private:
174 void registerRoutes();
175
181 std::string toString(crow::HTTPMethod method);
182
183 crow::SimpleApp m_app;
184 std::string m_ip;
185 int m_port;
186};
187
191using ApiServerPtr = std::shared_ptr<ApiServer>;
192
193} // namespace engine
194
195#endif // API_SERVER_H // end of ApiServer
std::function< crow::response(const crow::request &)> HandlerFunc
API 서버에서 사용할 핸들러 함수 타입.
Definition api_server.hpp:39
std::shared_ptr< ApiServer > ApiServerPtr
ApiServer 스마트 포인터 타입 정의
Definition api_server.hpp:191
void init()
서버 초기화 (라우트 등록)
Definition api_server.cpp:11
crow::response handleExcelUpload(const crow::request &)
Excel (CSV) 파일 업로드 및 파싱 API.
Definition api_server.cpp:137
crow::response handleSmartPtrUnique(const crow::request &)
UniquePtr 테스트 핸들러
Definition api_server.cpp:337
crow::response handleDemoAdd(const crow::request &)
Demo용 간단한 덧셈 API.
Definition api_server.cpp:99
crow::response handleReadTable(const crow::request &req)
테이블 데이터 읽기 핸들러
Definition api_server.cpp:240
crow::response handleUpdateExcel(const crow::request &req)
Excel 스타일 테이블 업데이트 핸들러
Definition api_server.cpp:300
crow::response handleFeatureCheck(const crow::request &)
라이선스 기능 체크 핸들러
Definition api_server.cpp:123
crow::response handleDeleteExcel(const crow::request &req)
Excel 스타일 테이블 삭제 핸들러
Definition api_server.cpp:304
void addRoute(const std::string &path, crow::HTTPMethod method, HandlerFunc handler)
API 라우트를 추가합니다.
Definition api_server.cpp:87
void start()
서버 시작 (비동기 실행)
Definition api_server.cpp:15
crow::response handleSmartPtrShared(const crow::request &)
SharedPtr 테스트 핸들러
Definition api_server.cpp:311
crow::response stopEngineServer(const crow::request &req)
엔진 종료 요청 핸들러
Definition api_server.cpp:392
ApiServer(const std::string &ip, int port)
ApiServer 생성자
Definition api_server.cpp:8
crow::response handleCreateTable(const crow::request &req)
새로운 테이블 생성 핸들러
Definition api_server.cpp:228
crow::response handleJoinTable(const crow::request &req)
두 테이블을 조인(merge)하는 핸들러
Definition api_server.cpp:265
crow::response handleDeleteTable(const crow::request &req)
테이블 삭제 핸들러
Definition api_server.cpp:258
crow::response handleCreateExcel(const crow::request &req)
Excel 스타일 테이블 생성 핸들러
Definition api_server.cpp:292
crow::response handleUpdateTable(const crow::request &req)
테이블 데이터 업데이트 (row 추가) 핸들러
Definition api_server.cpp:247
crow::response startEngineServer(const crow::request &req)
엔진 초기화 및 실행 핸들러
Definition api_server.cpp:365
crow::response handleCopyTable(const crow::request &req)
테이블 복사 핸들러
Definition api_server.cpp:282
void stop()
서버 중단 요청
Definition api_server.cpp:20
crow::response handleReadExcel(const crow::request &req)
Excel 스타일 테이블 읽기 핸들러
Definition api_server.cpp:296
엔진 메인 제어 헤더
엔진의 실행 및 초기화 상태를 나타내는 열거형을 정의하는 파일입니다.
API 핸들러에서 공통적으로 사용하는 기본 타입 및 유틸리티를 정의합니다.
라이선스 기능 제어 클래스를 정의하는 파일입니다.
다양한 범용 유틸리티 함수와 공통 설정을 포함하는 헤더 파일입니다.