【发布时间】:2014-04-13 21:08:40
【问题描述】:
我正在尝试使用 Luminus 构建一个网站,以便学习一些 Clojure。我有多年的命令式经验,但现在才进入函数式编程。现在,我正在尝试process a signed_request object from Facebook。
根据网站我必须:
- 在句点(“.”)上分割一个字符串,得到一个包含 2 个字符串的向量。
- 获取这些字符串中的第一个,使用 base64 对其进行解码并与密钥进行比较。
- 获取第二个字符串,使用 base64 对其进行解码,然后使用 JSON 再次解码。
如果我用命令式语言来做这件事,这真的很简单,但是当涉及到函数式方法时,我却一无所知。现在我只知道如何将字符串拆分为 2 个字符串的向量:
(defn parse-request [signed_request]
((clojure.string/split signed_request #"\.")
))
(defn redirect-page [signed_request]
(layout/render "redirect.html"
{:parsed_request parse-request(signed_request)}))
(defroutes home-routes
(GET "/" [] (home-page))
(POST "/redirect" [signed_request] (redirect-page signed_request)))
redirect-page 在服务器接收到 POST 请求时运行,然后它接受 signed_request 并将其传递给 parse-request 函数。解决此问题的实用方法是什么?
【问题讨论】:
标签: facebook clojure leiningen compojure ring