import vibe.http.router; import vibe.http.server; import vibe.web.rest; 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); }
Allows processing the return value of a handler method and the request/response objects.
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.