👏
clojureでwebやる場合、普通にtransitで投げてるな
cljs-ajaxで
クライアント側で変換する方法があるんですね(今回はただのJSON APIサーバーを作ってるのでその方法は使えませんが。
APIサーバーならliberator使ったほうが早くない?
そういうのがあるんですね
validationとかが出来るのがcompojureと違うところですか?
compojureの上に更にのっかってるだけ
webmachine 実装
あんまり素のcompojure使わないからなあ
luminusばっかつかってる
middleware も metosin/ring-http-response とmetosin/ring-middleware-formatあればほぼ変換自動じゃないかな
web系はまずは他の言語のフレームワークの発想を借りてきたといのもあって、 compojure/ringはもともとrubyのsinatra/rackから持ってきたらしいですが、 compojureは、urlみてapi切り替える、ルーティングしかしてないので、代替が https://github.com/juxt/bidi/ 結構あったりします。
REST(リソース)返すのと、html組み立てて返すので、処理が変わりライブラリの構成も変わるので、発想によって違うセットがありますね。
所詮ライブラリ、されどライブラリという感じが強いですよね。
REST系がやはりliberator(compojure-api)が定番にはなってて、mopemopeさんが書いてくれたように erlangのwebmachine風になってます。 http://clojure-liberator.github.io/liberator/
作り始めは穴が結構あって
実用されてるとやっぱり、穴が減ってきたり、 他のフレームワークでやってきた人がこれに対応出来てないとか指摘して、追加してくれてると
結構使いやすいというのはあるかなと。
html用だと、例えば、IEやらで拡張子で推測しないヘッダがとか、日本語でファイル吐き出しだしたときに対応してるとか、キャッシュがどうだとか、httpのリダイレクトのレスポンスコードがうんぬんみたいな
実際サービスしてると、(誰かが先に同じ目にあってて)始めから対応してくれてると
そういう使い込まれたライブラリがあれば、時間取られないとかあるんじゃないかと。
clojureの場合、使い込まれたjavaのライブラリに乗っかってる対処するという方法もありますが。
mopemopeさんの貼ってたmetosinさんのライブラリは、そこそこ使い込んでるから出てきてるなという印象があります。 https://github.com/metosin?tab=repositories スライドとかも参考になるんじゃないかと。 http://www.slideshare.net/mobile/metosin
そういえば、newlelicとか使ってます? awsユーザ向けのアカウント作ると無料サービスの範囲でも導入しやすいですが。 http://newrelic.com/aws とはいっても特別な使い方はしてないんですが、、、 http://aan.io/clojure-newrelic-monitoring/ https://github.com/TheClimateCorporation/clj-newrelic (今日は深夜放送のため待機して暇で、一人で書き込んですいません)