HTTP::Engineの仕様

HTTP::Engineの仕様

とりあえず0.0.xの仕様を固めたい。

使い方

実行のしかたは、こんな感じで config.yaml とかから作った config を流し込めるようにしとくといいんじゃないか。

use HTTP::Engine middle_wares => [qw/ModuleReload DebugScreen/]; # middle_wares は省略可能

my $engine = HTTP::Engine->new(
    interface => {
        module => 'ServerSimple',
        args    => {
            host => 'localhost',
            port =>  1978,
        },
        handle_request => 'handle_request',# CODE ref も可
    },
};
$engine->run;

sub handle_request {
}

レイヤ

Interface と RequestBuilder, ResponseWrite が HTTP::Engine の領域

+-------------------------------+
|         Application           |
+-------------------------------+
| ↑       Middleware       ↓  | <- 無くても良い
+-------------------------------+
| ↑  Request   |  Response ↓  |
| ↑ Builder    |    Writer ↓  |
+-------------------------------+
| ↑   read API | write API ↓  |
|          Interface            |
+-------------------------------+
|         HTTP Server           |
+-------------------------------+