เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจฎเฉเจ เจเจธ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเจพเจเจเจพ เจเจฟ เจฎเฉเจ เจเฉฑเจ เจเฉเจเจชเจฒเฉเจ (เจเฉเจเฉเจเจเจฐ) เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจ เจ เจคเฉ เจกเฉเจเจฐ/เจกเฉเจเจฐ-เจเฉฐเจชเฉเจเจผ เจ เจคเฉ เจเฉเจจเจจ เจชเฉเจเฉเจ เจฎเฉเจจเฉเจเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ C++ เจตเจฟเฉฑเจ เจเฉฑเจ REST API เจธเฉเจตเจพ เจฒเจฟเจเจฃ เจฒเจ เจเฉฑเจ เจตเจพเจคเจพเจตเจฐเจฃ เจธเจฅเจพเจชเจค เจเฉเจคเจพเฅค
เจ
เจเจฒเฉ เจนเฉเจเจพเจฅเจจ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจเจฟเจธ เจตเจฟเฉฑเจ เจฎเฉเจ เจเฉฑเจ เจฌเฉเจเจเจเจก เจกเจฟเจตเฉเจฒเจชเจฐ เจตเจเฉเจ เจนเจฟเฉฑเจธเจพ เจฒเจฟเจ เจธเฉ, เจเจน เจธเจตเจพเจฒ เจเฉฑเจ เจฟเจ เจเจฟ เจ
เจเจฒเฉ เจฎเจพเจเจเฉเจฐเฉเจธเจฐเจตเจฟเจธ เจจเฉเฉฐ เจฒเจฟเจเจฃ เจฒเจ เจเฉ เจตเจฐเจคเจฃเจพ เจนเฉเฅค เจนเฉเจฃ เจคเฉฑเจ เจเฉ เจตเฉ เจฒเจฟเจเจฟเจ เจเจฟเจ เจนเฉ, เจเจน เจธเจญ เจเฉเจ เจฎเฉเจฐเฉ เจ
เจคเฉ เจฎเฉเจฐเฉ เจฆเฉเจเจฐเจพ เจฒเจฟเจเจฟเจ เจเจฟเจ เจธเฉ
เจเจธ เจฒเจ, เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจเฉฑเจ-เจฒเฉเจก เจธเฉเจตเจพ เจฒเจฟเจเจฃ เจฆเฉ เจเฉฐเจฎ เจฆเจพ เจธเจพเจนเจฎเจฃเจพ เจเจฐเจจเจพ เจชเจฟเจ, เจเจฟเจธเจฆเจพ เจฎเฉเฉฑเจ เจเฉฐเจฎ เจเจธ เจตเจฟเฉฑเจ เจเจเจฃ เจตเจพเจฒเฉ เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเจฐเฉเจชเฉเจฐเฉเจธเฉเจธ เจเจฐเจจเจพ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจฒเจฟเจเจฃเจพ เจธเฉเฅค เจ เจคเฉ เจเฉฑเจ เจนเฉเจฐ เจธเจฎเฉเจ เจฌเฉเจฐเฉเจ เจคเฉเจ เจฌเจพเจ เจฆ, เจเฉฑเจ เจฆเฉเจธเจค เจจเฉ เจธเฉเจเจพเจ เจฆเจฟเฉฑเจคเจพ เจเจฟ เจฎเฉเจ, เจเฉฑเจ C++ เจกเจฟเจตเฉเจฒเจชเจฐ เจตเจเฉเจ, เจเจธ เจธเฉเจตเจพ เจจเฉเฉฐ เจชเฉเจธเจผเจฟเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจฟเจเจพเจเฅค เจเจธ เจฆเฉ เจฆเจฒเฉเจฒ เจเจน เจนเฉ เจเจฟ เจเจน เจคเฉเจเจผ, เจตเจงเฉเจฐเฉ เจฒเจพเจญเจเจพเจฐเฉ, เจ เจคเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจเจฟเจเจฐเฉ เจเจธ เจเฉฑเจฒ เจคเฉเจ เจเฉเจธเจผ เจนเฉเจตเฉเจเฉ เจเจฟ เจ เจธเฉเจ เจเฉเจฎ เจฆเฉ เจธเจฐเฉเจคเจพเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจเจพเจฃเจฆเฉ เจนเจพเจเฅค เจเจฟเจธ เจฆเจพ เจฎเฉเจ เจเจตเจพเจฌ เจฆเจฟเฉฑเจคเจพ เจเจฟ เจฎเฉเจ C++ เจตเจฟเฉฑเจ เจ เจเจฟเจนเจพ เจเฉฐเจฎ เจเจฆเฉ เจจเจนเฉเจ เจเฉเจคเจพ เจธเฉ เจ เจคเฉ เจฌเจพเจเฉ เจฌเจเฉ 20+ เจเฉฐเจเฉ เจเจธเจพเจจเฉ เจจเจพเจฒ เจขเฉเจเจตเฉเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจเฉเจเจฃ, เจเฉฐเจชเจพเจเจฒ เจเจฐเจจ เจ เจคเฉ เจฒเจฟเฉฐเจ เจเจฐเจจ เจฒเจ เจฒเจเจพ เจธเจเจฆเจพ เจธเฉเฅค เจฌเจธ เจชเจพเจ, เจฎเฉเจจเฉเฉฐ เจฌเจพเจนเจฐ chickened. เจเจน เจเจน เจนเฉ เจเจฟเจธ 'เจคเฉ เจ เจธเฉเจ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจ เจคเฉ เจชเจพเจเจฅเจจ เจตเจฟเฉฑเจ เจธเจญ เจเฉเจ เจธเจผเจพเจเจคเฉ เจจเจพเจฒ เจชเฉเจฐเจพ เจเฉเจคเจพเฅค
เจนเฉเจฃ, เจเจผเจฌเจฐเจฆเจธเจคเฉ เจธเจตเฉ-เจ
เจฒเฉฑเจ-เจฅเจฒเฉฑเจ เจนเฉเจฃ เจฆเฉ เจฆเฉเจฐเจพเจจ, เจฎเฉเจ เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจนเฉ เจเจฟ C++ เจตเจฟเฉฑเจ เจธเฉเจตเจพเจตเจพเจ เจเจฟเจตเฉเจ เจฒเจฟเจเจฃเฉเจเจ เจนเจจเฅค เจธเจญ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉฑเจ เจขเฉเจเจตเฉเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเจพ เจซเฉเจธเจฒเจพ เจเจฐเจจเจพ เจธเฉเฅค เจฎเฉเจฐเฉ เจชเจธเฉฐเจฆ 'เจคเฉ เจกเจฟเฉฑเจ เจเจฟเจ
conanfile.txt
[เจฒเฉเฉเฉเจเจฆเจพ เจนเฉ]
poco/1.9.3
libpq/11.5
เจ เจคเฉ เจเฉฑเจ เจธเจงเจพเจฐเจจ เจเจฎเจพเจเจก เจจเจพเจฒ "conan install." เจฒเฉเฉเฉเจเจฆเฉเจเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ. เจเฉเจฆเจฐเจคเฉ เจคเฉเจฐ 'เจคเฉ, เจเจธ เจตเจฟเจ เจฌเจฆเจฒเจพเจ เจเจฐเจจเจพ เจตเฉ เจเจผเจฐเฉเจฐเฉ เจธเฉ
CMakeLists.txt
include(build/conanbuildinfo.cmake)
conan_basic_setup()
target_link_libraries(<target_name> ${CONAN_LIBS})
เจเจธ เจคเฉเจ เจฌเจพเจ เจฆ, เจฎเฉเจ PostgreSQL เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจญเจพเจฒ เจธเจผเฉเจฐเฉ เจเฉเจคเฉ, เจเจฟเจเจเจเจฟ เจเจน เจเจน เจธเฉ เจเจฟเจธ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเจพ เจฎเฉเจจเฉเฉฐ เจฌเจนเฉเจค เจเฉฑเจ เจ เจจเฉเจญเจต เจธเฉ, เจ เจคเฉ เจเจน เจเจนเฉ เจธเฉ เจเจฟเจธ เจจเจพเจฒ เจธเจพเจกเฉ เจชเจพเจเจฅเจจ เจธเฉเจตเจพเจตเจพเจ เจจเฉ เจเฉฑเจฒเจฌเจพเจค เจเฉเจคเฉ เจธเฉเฅค เจ เจคเฉ เจเฉ เจคเฉเจธเฉเจ เจเจพเจฃเจฆเฉ เจนเฉ เจเจฟ เจฎเฉเจ เจเฉ เจธเจฟเฉฑเจเจฟเจ เจนเฉ? เจเจน POCO เจตเจฟเฉฑเจ เจนเฉ! เจชเจฐ เจเฉเจจเจจ เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจเจฟ เจเจน POCO เจตเจฟเฉฑเจ เจนเฉ เจ เจคเฉ เจเจน เจจเจนเฉเจ เจเจพเจฃเจฆเจพ เจเจฟ เจเจธเจจเฉเฉฐ เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจฃเจพ เจนเฉ; เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจชเฉเจฐเจพเจฃเฉ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ เจนเฉ (เจฎเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ POCO เจฆเฉ เจจเจฟเจฐเจฎเจพเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเจธ เจเจฒเจคเฉ เจฌเจพเจฐเฉ เจฒเจฟเจเจฟเจ เจนเฉ)เฅค เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจนเฉเจฐ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจญเจพเจฒ เจเจฐเจจเฉ เจชเจตเฉเจเฉเฅค
เจ
เจคเฉ เจซเจฟเจฐ เจฎเฉเจฐเฉ เจชเจธเฉฐเจฆ เจเฉฑเจ เจเฉฑเจ เจชเฉเจฐเจธเจฟเฉฑเจง เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ 'เจคเฉ เจกเจฟเฉฑเจ เจเจ
เจ
เจเจฒเจพ เจเจฆเจฎ เจเฉฑเจ เจธเฉเจตเจพ เจเฉเจเจชเจฒเฉเจ เจฒเจฟเจเจฃเจพ เจธเฉ เจเฉ เจฌเฉเจจเจคเฉเจเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐ เจธเจเจฆเจพ เจนเฉเฅค
เจธเจพเจจเฉเฉฐ Poco::Util::ServerApplication เจคเฉเจ เจธเจพเจกเฉ TemplateServerApp เจเจฒเจพเจธ เจจเฉเฉฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจ
เจคเฉ เจฎเฉเฉฑเจ เจตเจฟเจงเฉ เจจเฉเฉฐ เจเจตเจฐเจฐเจพเจเจก เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจเฉเจเจชเจฒเฉเจ เจธเจฐเจตเจฐ เจเจช
#pragma once
#include <string>
#include <vector>
#include <Poco/Util/ServerApplication.h>
class TemplateServerApp : public Poco::Util::ServerApplication
{
protected:
int main(const std::vector<std::string> &);
};
int TemplateServerApp::main(const vector<string> &)
{
HTTPServerParams* pParams = new HTTPServerParams;
pParams->setMaxQueued(100);
pParams->setMaxThreads(16);
HTTPServer s(new TemplateRequestHandlerFactory, ServerSocket(8000), pParams);
s.start();
cerr << "Server started" << endl;
waitForTerminationRequest(); // wait for CTRL-C or kill
cerr << "Shutting down..." << endl;
s.stop();
return Application::EXIT_OK;
}
เจฎเฉเฉฑเจ เจขเฉฐเจ เจตเจฟเฉฑเจ เจธเจพเจจเฉเฉฐ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเฉเฉฑเจ เจเจฐเจจเฉ เจเจพเจนเฉเจฆเฉ เจนเจจ: เจชเฉเจฐเจ, เจฅเจฐเจฟเฉฑเจกเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจ เจคเฉ เจเจคเจพเจฐ เจฆเจพ เจเจเจพเจฐเฅค เจ เจคเฉ เจธเจญ เจคเฉเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจเจฃ เจตเจพเจฒเฉเจเจ เจฌเฉเจจเจคเฉเจเจ เจฒเจ เจเฉฑเจ เจนเฉเจเจกเจฒเจฐ เจจเจฟเจธเจผเจเจฟเจค เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจน เจซเฉเจเจเจฐเฉ เจฌเจฃเจพ เจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ
TemplateRequestHandlerFactory
class TemplateRequestHandlerFactory : public HTTPRequestHandlerFactory
{
public:
virtual HTTPRequestHandler* createRequestHandler(const HTTPServerRequest & request)
{
return new TemplateServerAppHandler;
}
};
เจฎเฉเจฐเฉ เจเฉเจธ เจตเจฟเฉฑเจ, เจเจน เจนเจฐ เจตเจพเจฐ เจเฉฑเจเฉ เจนเฉ เจนเฉเจเจกเจฒเจฐ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ - TemplateServerAppHandler. เจเจน เจเจน เจฅเจพเจ เจนเฉ เจเจฟเฉฑเจฅเฉ เจ เจธเฉเจ เจเจชเจฃเจพ เจตเจชเจพเจฐเจ เจคเจฐเจ เจฐเฉฑเจ เจธเจเจฆเฉ เจนเจพเจเฅค
TemplateServerAppHandler
class TemplateServerAppHandler : public HTTPRequestHandler
{
public:
void handleRequest(HTTPServerRequest &req, HTTPServerResponse &resp)
{
URI uri(req.getURI());
string method = req.getMethod();
cerr << "URI: " << uri.toString() << endl;
cerr << "Method: " << req.getMethod() << endl;
StringTokenizer tokenizer(uri.getPath(), "/", StringTokenizer::TOK_TRIM);
HTMLForm form(req,req.stream());
if(!method.compare("POST"))
{
cerr << "POST" << endl;
}
else if(!method.compare("PUT"))
{
cerr << "PUT" << endl;
}
else if(!method.compare("DELETE"))
{
cerr << "DELETE" << endl;
}
resp.setStatus(HTTPResponse::HTTP_OK);
resp.setContentType("application/json");
ostream& out = resp.send();
out << "{"hello":"heh"}" << endl;
out.flush();
}
};
เจฎเฉเจ PostgreSQL เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเจฒเจพเจธ เจเฉเจเจชเจฒเฉเจ เจตเฉ เจฌเจฃเจพเจเจ เจนเฉเฅค เจธเจงเจพเจฐเจจ SQL เจเจฐเจจ เจฒเจ, เจเจฟเจตเฉเจ เจเจฟ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจฌเจฃเจพเจเจฃเจพ, เจเฉฑเจ เจขเฉฐเจ เจนเฉ ExecuteSQL(). เจตเจงเฉเจฐเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจชเฉเฉฑเจเจเจฟเฉฑเจเจพเจ เจเจพเจ เจกเจพเจเจพ เจชเฉเจฐเจพเจชเจคเฉ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจฐเจพเจนเฉเจ เจเฉฑเจ เจเจจเฉเจเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ เจนเฉเจตเฉเจเจพ เจเจจเฉเจเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจเจฐเฉ() เจ เจคเฉ libpg API เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉเฅค (เจธเจผเจพเจเจฆ เจฌเจพเจ เจฆ เจตเจฟเฉฑเจ เจฎเฉเจ เจเจธ เจฌเฉเจเจจเจธเจพเจซเจผเฉ เจจเฉเฉฐ เจธเฉเจงเจพเจฐเจพเจเจเจพ)เฅค
เจกเจพเจเจพเจฌเฉเจธ
#pragma once
#include <memory>
#include <mutex>
#include <libpq-fe.h>
class Database
{
public:
Database();
std::shared_ptr<PGconn> GetConnection() const;
bool ExecuteSQL(const std::string& sql);
private:
void establish_connection();
void LoadEnvVariables();
std::string m_dbhost;
int m_dbport;
std::string m_dbname;
std::string m_dbuser;
std::string m_dbpass;
std::shared_ptr<PGconn> m_connection;
};
เจกเฉเจเจพเจฌเฉเจธ เจจเจพเจฒ เจเฉเฉเจจ เจฒเจ เจธเจพเจฐเฉ เจฎเจพเจชเจฆเฉฐเจก เจตเจพเจคเจพเจตเจฐเจฃ เจคเฉเจ เจฒเจ เจเจ เจนเจจ, เจเจธ เจฒเจ เจคเฉเจนเจพเจจเฉเฉฐ .env เจซเจพเจเจฒ เจฌเจฃเจพเจเจฃ เจ เจคเฉ เจธเฉฐเจฐเจเจฟเจค เจเจฐเจจ เจฆเฉ เจตเฉ เจฒเฉเฉ เจนเฉเฅค
.env
DATABASE_NAME=template
DATABASE_USER=user
DATABASE_PASSWORD=password
DATABASE_HOST=postgres
DATABASE_PORT=5432
'เจคเฉ เจคเฉเจธเฉเจ เจธเจพเจฐเจพ เจเฉเจก เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ
เจ เจคเฉ เจนเฉเจฃ dockerfile เจ เจคเฉ docker-compose.yml เจฒเจฟเจเจฃ เจฆเจพ เจ เฉฐเจคเจฎ เจชเฉเจพเจ เจเจเจเจฆเจพ เจนเฉเฅค เจเจฎเจพเจจเจฆเจพเจฐ เจนเฉเจฃ เจฒเจ, เจเจธ เจตเจฟเฉฑเจ เจเจผเจฟเจเจฆเจพเจคเจฐ เจธเจฎเจพเจ เจฒเฉฑเจเจฟเจ, เจ เจคเฉ เจจเจพ เจธเจฟเจฐเจซ เจเจธ เจฒเจ เจเจฟ เจฎเฉเจ เจเฉฑเจ เจจเฉเจฌ เจนเจพเจ, เจเจฟเจเจเจเจฟ เจนเจฐ เจตเจพเจฐ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจเจฃเจพ เจเจผเจฐเฉเจฐเฉ เจธเฉ, เจชเจฐ เจเฉเจจเจจ เจฆเฉเจเจ เจเจฎเฉเจเจ เจเจพเจฐเจจ. เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉเจจเจจ เจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ, เจธเจฅเจพเจชเจค เจเจฐเจจ เจ เจคเฉ เจฌเจฃเจพเจเจฃ เจฒเจ, "conan install" เจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเจจ เจฒเจ เจเจน เจเจพเจซเจผเฉ เจจเจนเฉเจ เจนเฉ, เจเจธ เจจเฉเฉฐ -s compiler.libcxx=libstdc++11 เจชเฉเจฐเจพเจฎเฉเจเจฐ เจชเจพเจธ เจเจฐเจจ เจฆเฉ เจตเฉ เจฒเฉเฉ เจนเฉ, เจจเจนเฉเจ เจคเจพเจ เจคเฉเจนเจพเจกเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจฒเจฟเฉฐเจ เจเจฐเจจ เจฆเฉ เจชเฉเจพเจ 'เจคเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจเจฒเจคเฉเจเจ เจนเฉเจฃ เจฆเจพ เจเจผเจคเจฐเจพ เจนเฉเฅค เจฎเฉเจ เจเจ เจเฉฐเจเจฟเจเจ เจคเฉเจ เจเจธ เจเจฒเจคเฉ เจจเจพเจฒ เจซเจธเจฟเจ เจนเฉเจเจ เจนเจพเจ เจ เจคเฉ เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจเจน เจฒเฉเจ เจเฉฑเจ เจธเจฎเฉเจ เจตเจฟเฉฑเจ เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจจ เจตเจฟเฉฑเจ เจนเฉเจฐ เจฒเฉเจเจพเจ เจฆเฉ เจฎเจฆเจฆ เจเจฐเฉเจเจพเฅค
เจ
เฉฑเจเฉ, docker-compose.yml เจฒเจฟเจเจฃ เจคเฉเจ เจฌเจพเจ
เจฆ, เจฎเฉเจฐเฉ เจฆเฉเจธเจค เจฆเฉ เจธเจฒเจพเจน 'เจคเฉ, เจฎเฉเจ เจธเจฎเจฐเจฅเจจ เจเฉเฉเจฟเจ
เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ เจเจฟ เจเจน เจเฉเจฎเจชเจฒเฉเจ เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจ เจตเจพเจฒเจฟเจเจ เจจเฉเฉฐ เจฎเจนเจพเจจ เจ
เจคเฉ เจธเจผเจเจคเฉเจธเจผเจพเจฒเฉ, เจชเจฐ C++ เจตเจฐเจเฉ เจฌเฉเจขเฉฐเจเฉ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ REST API เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจฆเฉ เจเจจเฉเจนเจพเจ เจฆเฉ เจเจเฉ เจฎเจพเจฐเจ 'เจคเฉ เจฎเจฆเจฆ เจเจฐเฉเจเจพเฅค
เจจเจพเจฒ เจนเฉ, เจฎเฉเจ เจเฉฑเจฅเฉ เจชเฉเฉเจนเจจ เจฆเฉ เจเจผเฉเจฐเจฆเจพเจฐ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ
เจธเจฐเฉเจค: www.habr.com