Alias after
Allows processing the return value of a handler method and the request/response objects.
alias after
;
The value returned by the REST API will be the value returned by the last
@after
handler, which allows to post process the results of the handler
method.
Writing to the response body from within the specified handler function
causes any further processing of the request ot be skipped, including
any other @after
annotations and writing the result value.
Example
import vibe .http .server : HTTPServerRequest, HTTPServerResponse;
interface MyService {
long getMagic() @safe;
}
static long handler(long ret, HTTPServerRequest req, HTTPServerResponse res)
@safe {
return ret * 2;
}
class MyServiceImpl : MyService{
// the result reported by the REST API will be 42
@after!handler
long getMagic()
{
return 21;
}
}
void test(URLRouter router)
@safe {
router .registerRestInterface(new MyServiceImpl);
}