Giter VIP home page Giter VIP logo

cljs-http's Introduction

cljs-http

Build Status Dependencies Status Gittip

A ClojureScript HTTP library.

Installation

Via Clojars: http://clojars.org/cljs-http

Current Version

Usage

(ns example.core
  (:require-macros [cljs.core.async.macros :refer [go]])
  (:require [cljs-http.client :as http]
            [cljs.core.async :refer [<!]]))

(go (let [response (<! (http/get "https://api.github.com/users" {:with-credentials? false}))]
      (prn (:status response))
      (prn (map :login (:body response)))))

;; POSTing automatically sets Content-Type header and serializes
(http/post "http://example.com" {:edn-params {:foo :bar}})

;; JSON is auto-converted via `cljs.core/clj->js`
(http/post "http://example.com" {:json-params {:foo :bar}})

;; POSTing JSON in verbose Transit format
(http/post "http://example.com" {:transit-params {:key1 "value1" :key2 "value2"}})

;; Form parameters in a POST request (simple)
(http/post "http://example.com" {:form-params {:key1 "value1" :key2 "value2"}})

;; Form parameters in a POST request (array of values)
(http/post "http://example.com" {:form-params {:key1 [1 2 3] :key2 "value2"}})

;; Multipart parameters in a POST request to upload file
(http/post "http://example.com" {:multipart-params {:key1 "value1" :my-file my-file}})
;; where `my-file` can one of these:
;; - a Blob instance, eg:
;; (let [my-file (js/Blob. #js ["<h1>Hello</h1>"] #js {:type "text/html})] ...)
;; - a File instance, eg:
;; HTML: <input id="my-file" type="file">
;; (let [my-file (-> (.getElementById js/document "my-file")
;;                   .-files first)]
;;   ...)

;; HTTP Basic Authentication
(http/get
  "http://example.com"
  {:basic-auth {:username "hello" :password "world"}})

;; Pass prepared channel that will be returned,
;; e.g. to use a transducer.
(http/get "http://example.com" {:channel (chan 1 (map :body))})

;; JSONP
(http/jsonp "http://example.com" {:callback-name "callback" :timeout 3000})
;; Where `callback-name` is used to specify JSONP callback param name. Defaults to "callback".
;; `timeout` is the length of time, in milliseconds.
;; This channel is prepared to wait for for a request to complete.
;; If the call is not competed within the set time span, it is assumed to have failed.

License

Copyright (C) 2012-2014 r0man

Distributed under the Eclipse Public License, the same as Clojure.

cljs-http's People

Contributors

r0man avatar emidln avatar deraen avatar katox avatar ttasterisco avatar elliot42 avatar myguidingstar avatar mkremins avatar robert-stuttaford avatar cpetzold avatar t3chnoboy avatar jalehman avatar loganlinn avatar yalh avatar

Watchers

James Cloos avatar Thomas Crowley avatar Thomas Mulvaney avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.