Есть ли веб-фреймворк в стиле Sinatra для Erlang? - PullRequest
9 голосов
/ 18 января 2010

Я довольно долго программировал на Ruby и Rails, а потом влюбился в простоту фреймворка Sinatra, которая позволяла мне создавать веб-приложения на одну страницу.

Есть ли веб-фреймворк, такой как Sinatra, для Erlang? Я попробовал Erlyweb, но он кажется слишком тяжелым.

Ответы [ 5 ]

11 голосов
/ 19 января 2010

Вы можете достичь чего-то минимального с mochiweb:

start() ->
  mochiweb_http:start([{'ip', "127.0.0.1"}, {port, 6500},
                       {'loop', fun ?MODULE:loop/1}]).
                           % mochiweb will call loop function for each request

loop(Req) ->
  RawPath = Req:get(raw_path),
  {Path, _, _} = mochiweb_util:urlsplit_path(RawPath),   % get request path

  case Path of                                           % respond based on path
    "/"  -> respond(Req, <<"<p>Hello World!</p>">>);
    "/a" -> respond(Req, <<"<p>Page a</p>">>);
    ...
    _    -> respond(Req, <<"<p>Page not found!</p>">>)
  end.

respond(Req, Content) ->
  Req:respond({200, [{<<"Content-Type">>, <<"text/html">>}], Content}).

Если вам нужна расширенная маршрутизация, вам придется использовать регулярные выражения вместо простого оператора case.

3 голосов
/ 16 июля 2012

Возможно, вы захотите взглянуть на Аксиома (раскрытие: это мой собственный проект).Он в значительной степени вдохновлен Sinatra, построен на основе Cowboy и предлагает множество функций, которые делает Sinatra.

Простой пример:

-module(my_app).
-export([start/0, handle/3]).

start() ->
    axiom:start(?MODULE).

handle('GET', [<<"hi">>], _Request) ->
    <<"Hello world!">>.

Это обрабатываетGET /hi и возвращает Hello World!.

Посмотрите на README документацию о его функциях.

3 голосов
/ 20 февраля 2010

Взгляните на вебмашина .У него очень простой, но мощный механизм отправки.Вам просто нужно написать модуль ресурсов, указать на него ваши URI, и ваша служба автоматически станет HTTP-совместимой.

2 голосов
/ 24 января 2010

Может быть этот пример (см. ПОДДЕРЖКА ОТДЫХА) с использованием misultin, выглядит как sinatra:

2 голосов
/ 19 января 2010

Вас может заинтересовать каркас Rusty Klophaus ' азот . Он действительно легкий и идеально подходит для действительно динамичных одностраничных сайтов.

...