Skip to content

Latest commit

 

History

History
93 lines (92 loc) · 5.72 KB

File metadata and controls

93 lines (92 loc) · 5.72 KB

Asynchronous HTTP Client - Clojure - To Do

Receive [6/6]

Status Line

Headers

Body

Instead of id, pass (ref {}) to callbacks so they have their own STM ref’ed map.

Implement response promise

Consume stream

Error function

Send [6/9]

Query parameters

Parameters

Parameters allowed only on PUT/POST

Cookies

Describe

PUT/POST body [3/3]

Support sending strings

Support sending map as form encoded data

Support InputStream body

All HTTP verbs [6/7]

GET

POST

PUT

DELETE

HEAD

OPTIONS

Others, once supported by AHC-Java

PUT/POST streaming body

That can be done with clojure.core/add-watch. Watcher in that scenario will grab new content and write it via AHC, or alternatively will clojure.core/send-off to execute IO operation in separate thread.

Multipart

Authentication

Test Authentication

Configuration [0/2]

Global configuration of AHC [4/4]

Branding User-agent

Connection limiting per host.

Global proxy.

Timeout settings

Request timeout

Connection timeout

Idle connection timeout

Per request configuration [1/2]

Proxy configuration

Timeout

Request timeout

Connection timeout

Idle connection timeout

Tasks [12/12]

License

Cleanup namespaces

async.http.client

Should contain helper functions to call all HTTP verbs. Default set of call-backs.

async.http.client.request

Lower level of requesting:

  • execute-request
  • prepare-request

Release 0.1.0

Release 0.1.1

Release 0.2.0

Changes:

  • Stream as seq
  • Streams used instead of byte vectors (issue-1)
  • keyworded maps are used in api

Create a changelog

Release 0.2.1

Release bumps version of async-http-client to v1.3.2.

Make tests stand-alone

Test suite should not fail when there is now hello-www on port 8080.

Simplify request preparation

For now fns like GET will call prepare-get that will call prepare-reqeust. I don’t think prepare-get is necessary, should be quite fine to only use prepare-request.

Use last argument as key worded map

As suggested by Licenser on #clojure here.

Review documentation

Refactoring [1/1]

Refactor execute-request [2/2]

Build checkable promise

To check if promise was delivered use delivered?

Unify execute-request and consume-stream interfaces

  • Use new checkable promise for different parts of response
  • Use normal map for response instead of (ref {})
  • Provide helper functions to deal with metadata on response

Rename to http.async.client