aboutsummaryrefslogtreecommitdiffstats
path: root/examples/rest_hello_world/src/toppage_handler.erl
diff options
context:
space:
mode:
Diffstat (limited to 'examples/rest_hello_world/src/toppage_handler.erl')
-rw-r--r--examples/rest_hello_world/src/toppage_handler.erl39
1 files changed, 39 insertions, 0 deletions
diff --git a/examples/rest_hello_world/src/toppage_handler.erl b/examples/rest_hello_world/src/toppage_handler.erl
new file mode 100644
index 0000000..8ee1904
--- /dev/null
+++ b/examples/rest_hello_world/src/toppage_handler.erl
@@ -0,0 +1,39 @@
+%% Feel free to use, reuse and abuse the code in this file.
+
+%% @doc Hello world handler.
+-module(toppage_handler).
+
+-export([init/3]).
+-export([content_types_provided/2]).
+-export([hello_to_html/2]).
+-export([hello_to_json/2]).
+-export([hello_to_text/2]).
+
+init(_Transport, _Req, []) ->
+ {upgrade, protocol, cowboy_http_rest}.
+
+content_types_provided(Req, State) ->
+ {[
+ {<<"text/html">>, hello_to_html},
+ {<<"application/json">>, hello_to_json},
+ {<<"text/plain">>, hello_to_text}
+ ], Req, State}.
+
+hello_to_html(Req, State) ->
+ Body = <<"<html>
+<head>
+ <meta charset=\"utf-8\">
+ <title>REST Hello World!</title>
+</head>
+<body>
+ <p>REST Hello World as HTML!</p>
+</body>
+</html>">>,
+ {Body, Req, State}.
+
+hello_to_json(Req, State) ->
+ Body = <<"{\"rest\": \"Hello World!\"}">>,
+ {Body, Req, State}.
+
+hello_to_text(Req, State) ->
+ {<<"REST Hello World as text!">>, Req, State}.