Информация об изменениях

Сообщение Re[4]: Web-server для организации API от 25.09.2023 11:04

Изменено 25.09.2023 11:27 Alekzander

Re[4]: Web-server для организации API
Здравствуйте, so5team, Вы писали:

A>>А нет ли чего-нибудь менее универсального?


S>Не в курсе. Мне не доводилось слышать про генерацию обработчиков HTTP-точек входа для встраиваемого в C++ сервера. Вроде как большинству достаточно наличия аналога Express-JS и все.


"Концепция поменялась" © Я понял, чего я хочу на самом деле. Не хочу я никакой DSL. А хочу я примерно вот такого:

class Library : public Webserver<Library>
{
...
    BEGIN_FUNCTION_MAP
        FUNCTION_2("getModules", getModules)
        FUNCTION_1("offerResult", offerResult)
        FUNCTION_1("requestSearch", requestSearch)
        FUNCTION_0("getUserName", getUserName)
    END_FUNCTION_MAP

    json::value getModules(json::value folder, json::value sort) const;
    json::value offerResult(json::value result);
    json::value requestSearch(json::value query);
    json::value getUserName();
};


Это из другого проекта, который пробрасывает плюсовую имплементацию API в JS. Так вот, хотелось бы то же самое, но на уровень веб-сервера. Как можно заметить, тут дублируются имена для регистрации и имплементации (уж не помню почему), но это легко лечится.

Вот это было бы идеально.

S>Из современного модного и молодежного посмотрите на drogon, oat++, реанимированный crow и userver. Это вроде бы то, что претендует на более-менее высокий уровень. Хотя в дополнению к этому еще три-четыре альтернативы можно назвать, но про генерацию стабов для сервера я не слышал


Вот ещё более один список, который я успел найти:

https://www.reddit.com/r/cpp/comments/cjj9t5/what_c_web_server_library_one_should_use_nowadays/

Судя по всему, придётся взять какой-нибудь Mongoose и напедалить FUNCTION_MAP самому.
Re[4]: Web-server для организации API
Здравствуйте, so5team, Вы писали:

A>>А нет ли чего-нибудь менее универсального?


S>Не в курсе. Мне не доводилось слышать про генерацию обработчиков HTTP-точек входа для встраиваемого в C++ сервера. Вроде как большинству достаточно наличия аналога Express-JS и все.


"Концепция поменялась" © Я понял, чего я хочу на самом деле. Не хочу я никакой DSL. А хочу я примерно вот такого:

class Library : public Webserver<Library>
{
...
    BEGIN_FUNCTION_MAP
        FUNCTION_2("getModules", getModules)
        FUNCTION_1("offerResult", offerResult)
        FUNCTION_1("requestSearch", requestSearch)
        FUNCTION_0("getUserName", getUserName)
    END_FUNCTION_MAP

    json::value getModules(json::value folder, json::value sort) const;
    json::value offerResult(json::value result);
    json::value requestSearch(json::value query);
    json::value getUserName();
};


Это из другого проекта, который пробрасывает плюсовую имплементацию API в JS. Так вот, хотелось бы то же самое, но на уровень веб-сервера. Как можно заметить, тут дублируются имена для регистрации и имплементации (уж не помню почему), но это легко лечится.

Вот это было бы идеально.

S>Из современного модного и молодежного посмотрите на drogon, oat++, реанимированный crow и userver. Это вроде бы то, что претендует на более-менее высокий уровень. Хотя в дополнению к этому еще три-четыре альтернативы можно назвать, но про генерацию стабов для сервера я не слышал


Вот ещё один список, который я успел найти:

https://www.reddit.com/r/cpp/comments/cjj9t5/what_c_web_server_library_one_should_use_nowadays/

Судя по всему, придётся взять какой-нибудь Mongoose и напедалить FUNCTION_MAP самому.