问题标签 [liberator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
33 浏览

clojure - Liberator 自定义未授权消息

如果为真,我如何传递自定义401 Not Authorized消息:not-authorized??我想显示一个更有用的消息,例如Key must have admin permissions.

0 投票
1 回答
159 浏览

clojure - Clojure liberator 库不发送 JSON 响应

我是 Clojure webdev 生态系统的新手,我想使用 liberator API 使用 POST 方法发送 JSON 响应,我试过这个:

一切看起来都很好,没有错误消息,我从 ring 收到“201 Created”响应,但 JSON 数据未发送,Chrome 中的“响应”选项卡为空。需要我添加一些东西吗?顺便说一句,我使用的是 compojure,而不是 compojure-api。

我也试过:

但没有运气。

0 投票
0 回答
115 浏览

clojure - liberator 的 JSON 表示问题

我正在尝试使用 Liberator 定义一个非常简单的资源。为了开始一个最小的例子,我写了一个这样的处理程序:

但是尽管显然传递了一个值(不是零),但我得到了以下异常:

java.lang.IllegalArgumentException:多方法“render-map-generic”中没有用于调度值的方法:null。

这个问题也出现在我的实际资源中,所以我试图明确说明它应该如何表示地图,我包括:available-media-types ["application/json"]

现在它可以工作了(令我惊讶的是我必须这样做),但现在每当我指出资源不存在时,我都会得到一个非常奇怪的错误响应(不是例外)。并证明:

现在我得到了一个 404(我很感激),响应正文如下:

解析 JSON 数据时出错

JSON 中位于位置 0 的意外标记 R

这是x-liberator-trace

:decision (:initialize-context {}); :decision (:service-available?true); :decision (:known-method?:get); :decision (:uri-too-long?false); :decision (:method-allowed?:get); :decision (:malformed?false); :decision (:authorized?true); :decision (:allowed?true); :decision (:valid-content-header?true); :decision (:known-content-type?true); :decision (:valid-entity-length?true); :decision (:is-options?false); :decision (:accept-exists? [false {:representation {:media-type "application/json"}}]); :decision (:accept-language-exists?nil); :decision (:accept-charset-exists?nil); :decision (:accept-encoding-exists?nil); :decision (:processable?true); :decision (:exists?false); :decision (:if-match-star-exists-for-missing?false); :decision (:method-put?false); :decision (:existed?false); :decision (:post-to-missing?false); :

你可能会建议我可以破解我的出路并定义一个:handle-not-found处理程序,我有,但它只是被这个响应完全覆盖。

我不确定这是否是一个错误,或者我只是没有正确使用 Liberator。这个例子很简单,我认为是后者。但另一方面,当我改用“application/edn”时,它可以完美地工作。我还想知道这是否是一种回归,所以我检查了几个版本,但结果相同。

0 投票
2 回答
167 浏览

intellij-idea - 使用 defresource 时无法解析 Arg

我正在尝试使用 liberator 宏defresource,但 intellij IDE 不断返回错误“(arg)无法解析”

我正在使用 clojure、ring 和 liberator 做一个项目,在这个项目中我有依赖项

在代码中

使用defresource ok消息“确定无法解决”时不断显示

0 投票
1 回答
29 浏览

clojure - 有没有办法在不修改资源的情况下通过额外的决定来扩展解放者资源?

defresource我想通过额外的决定来扩展现有的。

假设我有(请注意,这不是实际代码,而是展示我正在尝试做的事情的示例):

然后我想“扩展”get-something一个额外的决定,例如

“扩展”是指将决策添加到处理程序的工作流程而不修改get-something,从而获得使用所有决策的资源。

甚至可能吗?

0 投票
0 回答
85 浏览

clojure - 如何从解放者的请求中提取表单数据?

我有以下客户端请求:

在服务器上(带有解放者):

在服务器上,我确实得到了表单数据的打印,如下所示:

但是下一个 prn 不会打印我的目标是提取 :uploaded-file 的任何内容。我究竟做错了什么?

0 投票
1 回答
43 浏览

clojure - 重定向后?不在解放者中工作或预检响应不成功

我有以下代码:

当我发送请求时,我得到了错误Preflight response is not successfulXMLHttpRequest cannot load [authorize-uri] due to access control checks. 当我将重定向位置图包裹在响铃响应周围时,我没有收到错误,但我也没有在浏览器中获得重定向。我究竟做错了什么?

- 编辑 -

这是我的 system.components 配置。

这就是我的新资源的样子:

但我仍然收到“请求的资源上不存在‘Access-Control-Allow-Origin’标头。” 错误。

0 投票
1 回答
81 浏览

clojure - 使用 Liberator 的 Clojure 资源分配参数 arity 错误

我正在编写一个 clojure 函数,当我使用defn它来定义它时它可以正常工作,但是当我使用defresource. 我怀疑这与:as-response我正在使用的密钥有关,但我不知道如何修复它。有任何想法吗?我的代码:

使用 defresource 时出错:“传递给...的 args (2) 数量错误”我正在传递 0 个参数,使用 defn 可以正常工作。