Skip to content
На этой странице

Маршрутизация

Маршрутизация применяется в запросах для протоколов HTTP и WebSockets. Правила описания маршрутов для обоих протоколов одинаковые.

json
...
"http": {
    "routes": {
        // Путь до ресурса
        "/": {
            // Доступные методы взаимодействия с ресурсом
            "GET": [
                // Путь до разделяемого файла с обработчиками для ресурса
                "/var/www/server/build/exec/handlers/libindexpage.so",
                // Название метода (функции), который будет вызван запросом
                "get"
            ],
            "POST": ["/var/www/server/build/exec/handlers/libindexpage.so", "post"]
        },
        "/admin/users": {
            "GET": ["/var/www/server/build/exec/handlers/libindexpage.so", "users_list"],
        },
        "/admin/users/{id|\\d+}": {
            "PATCH": ["/var/www/server/build/exec/handlers/libindexpage.so", "users_update"]
        },
        "^/managers/{name|[a-z]+}$": {
            "PATCH": ["/var/www/server/build/exec/handlers/libindexpage.so", "managers_update"]
        },
        "/wss": {
            "GET": ["/var/www/server/build/exec/handlers/libindexpage.so", "websocket"]
        }
    },
    ...
},
"websockets": {
    "routes": {
        "/": {
            "GET": ["/var/www/server/build/exec/handlers/libwsindexpage.so", "get"],
            "POST": ["/var/www/server/build/exec/handlers/libwsindexpage.so", "post"],
            "PATCH": ["/var/www/server/build/exec/handlers/libwsindexpage.so", "path"],
            "DELETE": ["/var/www/server/build/exec/handlers/libwsindexpage.so", "delete"]
        }
    }
},
...

Путь до ресурса может быть указан точным значением /admin/users или псевдо-регулярным выражением /admin/users/{id|\\d+}.

Шаблонные параметры можно извлечь с помощью метода query, например:

C
const char* id = request->query(request, "id");

Выпущено под лицензией MIT.