解放者:设置 :representation :media-type in :media-type-available?

Liberator: Setting :representation :media-type in :media-type-available?

我想使用决策点:media-type-available?但我失败了...

我知道我必须设置 :representation :media-type 但我真的不知道该怎么做。

到目前为止,我的代码如下所示:

(defresource test-resource []
  :media-type-available (fn [req]
    (assoc req :representation {:media-type "application/json"}))
  :available-media-types ["application/json" "text/html"]
  :handle-ok (fn [req] {:ok true})
)

备注:

  1. (assoc req :representation {:media-type "application/json"}) 生成带有 "changed" req 对象的正确地图。
  2. :handle-okreq对象中,:representation值为{}

我不知道如何设置它(它不是一个可变对象,是吗?)并且查看 liberator 的源代码并没有真正帮助...

谢谢, 卡罗尔

好的...这只是一个错字...而不是 :representation 我有 :represenation...

所以如果有人感兴趣,有两种方法可以解决这个问题:

  1. return req 对象合并 :representation:

    :media-type-available (fn [req]
      (assoc req :representation {:media-type "application/json"}))
    
  2. return 只有 :representation 对象:

    :media-type-available (fn [req]
      {:representation {:media-type "application/json"}})