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 статично перевіряє, чи є котрийсь об'єкт у списку параметрів
функції та просто передає дані за необхідністю.