Asynchronous HTTP Client - Clojure - To Do
Table of Contents
- 1 Receive [6/6]
- 2 Send [8/10]
- 3 Configuration [2/2]
- 4 Tasks [12/12]
1 Receive [6/6] code rel1
1.1 DONE Status Line rel1
1.2 DONE Headers rel1
1.3 DONE Body rel1
Instead of id, pass (ref {}) to callbacks so they have their own STM ref'ed map.
1.4 DONE Implement response promise rel1
1.5 DONE Consume stream rel1
1.6 DONE Error function rel1
2 Send [8/10] code
2.1 DONE Query parameters rel1
2.2 DONE Parameters rel1
2.3 DONE Parameters allowed only on PUT/POST rel1
2.4 DONE Cookies rel3
2.4.1 DONE Describe rel3
2.5 DONE PUT/POST body [3/3] rel1
2.5.1 DONE Support sending strings rel1
2.5.2 DONE Support sending map as form encoded data rel1
2.5.3 DONE Support InputStream body rel1
2.6 DONE All HTTP verbs [7/7]
2.6.1 DONE GET rel1
2.6.2 DONE POST rel1
2.6.3 DONE PUT rel1
2.6.4 DONE DELETE rel1
2.6.5 DONE HEAD rel1
2.6.6 DONE OPTIONS rel1
2.6.7 DONE Others, once supported by AHC-Java rel4
2.7 TODO PUT/POST streaming body rel4
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.
2.8 DONE Multipart rel4
2.9 TODO Request queuing
2.10 DONE Authentication rel3
2.10.1 DONE Test Authentication
3 Configuration [2/2]
3.1 DONE Global configuration of AHC [4/4] rel4
3.1.1 DONE Branding User-agent rel3
3.1.2 DONE Connection limiting per host. rel4
3.1.3 DONE Global proxy. rel4
3.1.4 DONE Timeout settings rel4
3.1.4.1 DONE Request timeout rel4
3.1.4.2 DONE Connection timeout rel4
3.1.4.3 DONE Idle connection timeout rel4
3.2 DONE Per request configuration [2/2] rel4
3.2.1 DONE Proxy configuration rel3
3.2.2 DONE Timeout rel4
3.2.2.1 DONE Request timeout rel4
3.2.2.2 DONE Connection timeout rel4
3.2.2.3 DONE Idle connection timeout rel4
4 Tasks [12/12]
4.1 DONE License rel1
4.2 DONE Cleanup namespaces rel1
4.2.1 async.http.client
Should contain helper functions to call all HTTP verbs. Default set of call-backs.
4.2.2 async.http.client.request
Lower level of requesting:
- execute-request
- prepare-request
4.3 DONE Release 0.1.0 rel1
4.4 DONE Release 0.1.1 rel2
4.5 DONE Release 0.2.0 rel3
Changes:
- Stream as seq
- Streams used instead of byte vectors (issue-1)
- keyworded maps are used in api
4.5.1 DONE Create a changelog rel3
4.6 DONE Release 0.2.1
Release bumps version of async-http-client to v1.3.2.
4.7 DONE Make tests stand-alone rel1
Test suite should not fail when there is now hello-www on port 8080.
4.8 DONE Simplify request preparation rel1
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.
4.10 DONE Review documentation rel3
4.11 DONE Refactoring [1/1] rel3
4.11.1 DONE Refactor execute-request [2/2]
4.11.1.1 DONE Build checkable promise
To check if promise was delivered use delivered?
4.11.1.2 DONE 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