2015-09-25 1 views
1

Я использую liberator для создания API с использованием Clojure. Учитывая код последующих:Render resource when PUT

(defresource single-customer [id] 
    :allowed-methods [:get, :put] 
    :exists? (fn [_] 
      (let [e (get @cust/customers (keyword id))] 
       (if-not (nil? e) 
       {::entry e}))) 
    :existed? (fn [_] (nil? (get @cust/customers (keyword id) ::sentinel))) 
    :available-media-types ["application/json"] 
    :can-put-to-missing? false 
    :put! (fn [q] (cust/set-as-fraudulent id)) 
    :handle-ok ::entry) 

Кто-то когда может сказать мне, если это возможно, как запрос GET, когда я отправить запрос PUT он будет перенаправлен на ресурс? "/customer/1" (например)?

ответ

2

Глядя на liberator decision graph, :put! может привести либо:

  • :handle-created (если :new?)
  • :handle-no-content (если не :new? и не :respond-with-entity?)
  • :handle-ok (если не :new, но :respond-with-entity?)

Попробуйте реализовать :put!, поэтому он сохраняет объект как ::entry и :handle-created, аналогичный вашему текущему :handle-ok.

+0

Спасибо @xsc, я проведу график принятия решения в следующий раз :) – elf

 Смежные вопросы

  • Нет связанных вопросов^_^