Веб-сервер

Vibe.d дозволяє створювати веб-сервери HTTP(S) за короткий проміжок часу:

auto settings = new HTTPServerSettings;
settings.port = 8080;
listenHTTP(settings, &foo);

Це дозволяє запустити веб-сервер на порті 8080, де всі запити обробляються за допомогою функції foo:

void foo(HTTPServerRequest req,
    HTTPServerResponse res) { ... }

Для того, щоб спростити стандартні моделі та конфігурації, існує клас URLRouter, який реєструє GET, POST та інші обробники з використанням функцій .get("path", handler) і .post("path", handler), або реєструє власний клас веб-інтерфейсу, який реалізує шляхи веб-серверу, як функції:

auto router = new URLRouter;
router.registerWebInterface(new WebService);
listenHTTP(settings, router);

Шляхи функцій веб-інтерфейсу WebService будуть автоматично виведені за допомогою простої схеми:

  • index() опрацює /index
  • getName() опрацює GET запит до /name
  • postUsername() опрацює POST запит до /username

Шлях користувача може бути встановлений за допомогою функції @path("/hello/world"). Параметри для запитів POST будуть доступні для функцій, що використовують імена змінних із префіксом _. Також можна вказати параметри безпосередньо у самому шляху:

@path("/my/api/:id")
void foo(int _id)

Вам не потрібно передавати об'єкти HTTPServerResponse та HTTPServerRequest, як це необхідно було робити із кожною функцією. Vibe.d статично перевіряє, чи є котрийсь об'єкт у списку параметрів функції та просто передає дані за необхідністю.

rdmd playground.d