我正在尝试使用一体化解决方案将compojure应用程序与LinkedIn,Facebook,Google和Twitter集成在一起.我知道一些现有的java库,例如scribe-java或spring-social可以提供帮助.但是当他们使用clojure时他们很糟糕.我的目标是否有更多适合他们的解决方案?或者,是否有人可以向我指出如何实现目标的工作样本/教程?
在Clojure/Compojure中,如何将地图转换为URL查询字符串?
{:foo 1 :bar 2 :baz 3}
Run Code Online (Sandbox Code Playgroud)
至
foo=1&bar=2&baz=3
Run Code Online (Sandbox Code Playgroud)
在compojure中有没有任何实用方法呢?
我听说过两个基于Clojure的Web应用程序框架:Webjure和Compojure.有人能让我知道哪个更好吗?
我对使用Clojure和Compojure构建网站非常感兴趣,如下所示:
http://briancarper.net/blog/deploying-clojure-websites
但是,由于我在Java环境和Java文化方面的经验有限,我不确定在购买Web托管服务时从哪里开始.
我是否只需要找到一个能够获得完全root访问权限且具有JDK/JVM的服务?或者还有其他要求吗?
我正在使用Compojure开发一个Web应用程序,我非常感谢一个存储和检索会话数据的小而完整的例子.
非常感谢詹姆斯.
我正在尝试使以下任何映射工作到映射http://mysite.org/add?http://sitetoadd.com或http://mysite.org/add?u=http://sitetoadd.com
(GET "/add?:url" [url] url)
(GET "/add?u=:url" [url] url)
(GET "/add" {params :params} (params :u))
(GET "/add" {params :params} (params "u"))
(GET "/add" [u] u)
Run Code Online (Sandbox Code Playgroud)
但它失败了,我不知道为什么.另一方面,这工作:
(GET "/add/:url" [url] url)
Run Code Online (Sandbox Code Playgroud)
但是我不能使用它,因为我必须传递一个URL并且http://mysite.org/add/http://sitetoadd.com在http://mysite.org/add?http://sitetoadd.com isok时无效.
编辑:倾销request我已经看到params是空的.我认为它将包含POST 和 GET参数,但我能找到我传递的参数的唯一地方是:query-string("u = asd").这似乎是一个中间件需要分析查询字符串.顺便提一下,我的问题仍然存在.
如果有人计划创建一个无UI的Web服务(接收JSON和/或XML,返回JSON和/或XML),Noir是否提供除Compojure之外的任何有用的东西?
我正在开始我的Clojure新学习阶段.我想构建一个Web应用程序,但我不知道使用哪个.我在网上搜索了几个小时,我发现的所有东西都互相重叠,我对此感到有些困惑.
我有ASP.NET MVC和JavaEE的经验,所以如果有什么东西可以将Clojure web编程与这些经历联系起来,我很高兴听到它.
Leiningen,Compojure,Luminus和Ring之间的关系是什么?
我有一个compojure应用程序,它使用环会话包装器来存储与当前用户关联的OAuth令牌.我希望这个令牌在服务器重新启动时保持可用,这样我就不必每次都要经过身份验证过程.
我假设使用cookie-store而不是默认的内存存储会有所帮助,但事实并非如此.我错过了什么?
这是代码的相关部分:
(defn auth-callback-handler
[session {code :code}]
(let [token (retrieve-token code)]
(-> (redirect "/") (assoc :session (assoc session :token token)))))
(defroutes app-routes
(GET "/" {session :session} (root-handler session))
(GET "/auth-callback" {session :session params :params} (auth-callback-handler session params))
(route/not-found "Not Found"))
(def app
(-> (handler/site app-routes)
(wrap-session {:store (cookie-store {:key "a 16-byte secret"})})))
Run Code Online (Sandbox Code Playgroud)
该函数root-handler使用令牌来决定是否有人登录,但不会以会话信息的方式返回任何内容.
我正在尝试在我的compojure应用程序中使用ring-json的wrap-json-response中间件.我有一个简单的GET处理程序,它返回一个地图,就像{:foo 1},当我点击URL时,响应响应text/plain和一个空响应体.我似乎无法用JSON版本的地图来回应它.
这是我的处理程序代码:
(ns localshop.handler
(:use compojure.core)
(:require [localshop.routes.api.items :as routes-api-items]
[ring.middleware.json :as middleware]
[compojure.handler :as handler]
[compojure.route :as route]))
;; map the route handlers
(defroutes app-routes
(context "/api/item" [] routes-api-items/routes))
;; define the ring application
(def app
(-> (handler/api app-routes)
(middleware/wrap-json-body)
(middleware/wrap-json-params)
(middleware/wrap-json-response)))
Run Code Online (Sandbox Code Playgroud)
路由处理函数字面上只返回一个映射,所以代码很简单,我想我可以省略.如果从compojure路由处理程序返回一个映射是问题,那么也许就是这样呢?