Vibe.dはHTTP(S)ウェブサーバを一瞬のうちに書くことを可能にします:
auto settings = new HTTPServerSettings;
settings.port = 8080;
listenHTTP(settings, &foo);
これはすべてのリクエストがfoo
関数によりハンドルされるウェブサーバをポート8080で開始します:
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()
は/username
へのPOST
リクエストにハンドルされます
メンバ関数に@path("/hello/world")
属性を属性付けすることによってカスタムパスを設定できます。
POST
リクエストのパラメータは_
プレフィックスのついた変数名を使い、
関数で利用できるようになります。そのパスから直接パラメータを明記することもできます:
@path("/my/api/:id")
void foo(int _id)
各関数にパラメータとしてHTTPServerResponse
やHTTPServerRequest
を渡す必要はありません。
Vibe.dはそれが関数のパラメータリストにあるかどうか静的にチェックし、必要なら渡します。