2012-05-29 3 views
4

Большинство фреймворков веб-приложений Haskell, похоже, сосредоточены на выполнении большого количества работы на сервере (шаблоны, формы и т. Д.). Тем не менее, большинство остальных, похоже, все больше перемещает приложение на клиент и разговаривает с сервером через узкие API REST.Как использовать привязку Haskell с Backbone.js

Я ищу для создания веб-приложения, которое в основном работает на клиенте. Я хотел бы основать клиентскую сторону на Backbone.js (или аналогичном) и полностью разместить HTML-шаблон на клиенте с использованием библиотеки шаблонов JavaScript.

Я хотел бы реализовать серверную сторону в Haskell, предпочтительно используя фреймворк Snap.

Кто-нибудь пробовал использовать фреймворк Snap таким образом? Как я могу реализовать базовый API REST с методами GET, POST, PUT, DELETE в Snap? Или мне нужно сделать что-то еще проще, чем Snap для моего сервера?

ответ

5

У меня есть сайт, основанный на Snap, который использует довольно немного кода на стороне клиента. Это может быть не настолько обширно, как вы думаете, но это, безусловно, доказывает суть. Я рекомендую использовать javascript как статические файлы. Вы можете фильтровать по HTTP-методам с помощью функции Snap's method. Вот одна идея, как вы могли бы использовать:

fooHandler = method GET getter <|> 
      method POST poster <|> 
      method DELETE deleter 
    where 
    getter = ... 
    poster = ... 
    deleter = ... 

Затем вы можете использовать это, просто добавив маршрут для него:

addRoutes [ ("foo", fooHandler), ... ] 
+0

Спасибо! Это должно заставить меня идти. Я постараюсь найти нулевой серверный шаблон и посмотреть, как это происходит. Я отправлю ссылку github, если я соберу что-то простое, но полное. – Nurpax