0

Blitlineは、コマンドラインから呼び出すこの例を提供します。これはどのようにclojureに変換されますか?

$ curl "http://api.blitline.com/job" -d json='{ "src" : "http://www.google.com/logos/2011/yokoyama11-hp.jpg", "functions" : [ {"name": "blur", "params" : {"radius" : 0.0, "sigma" : 2.0}, "save" : { "image_identifier" : "some_id" }} ]}'
4

2 に答える 2

3

上記の答えは正解です。完全を期すために、必要な完全なコードを添付します。

(require '[clj-http.client :as http])
(require '[clojure.data.json :as json])

(def post
(http/post "http://api.blitline.com/job" {
:body 
    (json/json-str 
        { "json" 
        { "application_id" "sgOob0A3b3RdYaqwTEJCpA"
          "src" "http://www.google.com/logos/2011/yokoyama11-hp.jpg"
          "functions" [ {
                "name" "blur"
                "params" {
                    "radius" 0.0
                    "sigma" 2.0
                }
                "save" { "image_identifier" "some_id" }
                }
                ]}}) 
:body-encoding "UTF-8"
:content-type :json
:accept :json
}))

(json/read-json (:body post))
于 2012-09-18T02:08:52.850 に答える
1

clj-http.clientとclojure.data.jsonを使用できます。例として、Urban AirshipJSONAPIと通信するために使用するコードを次に示します。

(ns my-ns
  (:require [clj-http.client :as http]
            [clojure.data.json :as json]))

(def uu-base-url
  "https://go.urbanairship.com")

(def auth ["secret" "password"])    

(defn broadcast-message*
  [auth text]
  (http/post (str uu-base-url "/api/push/broadcast/") ;; target url
             {:basic-auth auth ;; leave this out if you don't need HTTP basic authentication
              :content-type "application/json"
              :body (json/json-str
                     ;; clojure data to be converted into JSON request body
                     {:aps {:badge 1
                            :alert text}})}))
于 2012-09-15T11:00:00.353 に答える