Asynchronous HTTP Client - Clojure - To Do
Table of Contents
- 1. Documentation
[0/3]
- 2. Receive
[6/6]
code rel1 - 3. Send
[8/10]
code- 3.1. DONE Query parameters rel1
- 3.2. DONE Parameters rel1
- 3.3. DONE Parameters allowed only on PUT/POST rel1
- 3.4. DONE Cookies rel3
- 3.5. DONE PUT/POST body
[3/3]
rel1 - 3.6. DONE All HTTP verbs
[7/7]
- 3.7. TODO PUT/POST streaming body rel4
- 3.8. DONE Multipart rel4
- 3.9. TODO Request queuing
- 3.10. DONE Authentication rel3
- 4. Configuration
[2/2]
- 5. Tasks
[12/12]
- 5.1. DONE License rel1
- 5.2. DONE Cleanup namespaces rel1
- 5.3. DONE Release 0.1.0 rel1
- 5.4. DONE Release 0.1.1 rel2
- 5.5. DONE Release 0.2.0 rel3
- 5.6. DONE Release 0.2.1
- 5.7. DONE Make tests stand-alone rel1
- 5.8. DONE Simplify request preparation rel1
- 5.9. DONE Use last argument as key worded map rel3
- 5.10. DONE Review documentation rel3
- 5.11. DONE Refactoring
[1/1]
rel3 - 5.12. DONE Rename to http.async.client rel3
- 6. Dependencies
[0/1]
1 Documentation [0/3]
1.1 TODO Determine how to show TravisCI build status via README.org
1.2 TODO Determine how to export a sitemap from org publish
1.3 TODO Extract quick start example code to its own file
2 Receive [6/6]
code rel1
2.1 DONE Status Line rel1
2.2 DONE Headers rel1
2.3 DONE Body rel1
Instead of id, pass (ref {}) to callbacks so they have their own STM ref'ed map.
2.4 DONE Implement response promise rel1
2.5 DONE Consume stream rel1
2.6 DONE Error function rel1
3 Send [8/10]
code
3.1 DONE Query parameters rel1
3.2 DONE Parameters rel1
3.3 DONE Parameters allowed only on PUT/POST rel1
3.4 DONE Cookies rel3
3.4.1 DONE Describe rel3
3.5 DONE PUT/POST body [3/3]
rel1
3.5.1 DONE Support sending strings rel1
3.5.2 DONE Support sending map as form encoded data rel1
3.5.3 DONE Support InputStream body rel1
3.6 DONE All HTTP verbs [7/7]
3.6.1 DONE GET rel1
3.6.2 DONE POST rel1
3.6.3 DONE PUT rel1
3.6.4 DONE DELETE rel1
3.6.5 DONE HEAD rel1
3.6.6 DONE OPTIONS rel1
3.6.7 DONE Others, once supported by AHC-Java rel4
3.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.
3.8 DONE Multipart rel4
3.9 TODO Request queuing
3.10 DONE Authentication rel3
3.10.1 DONE Test Authentication
4 Configuration [2/2]
4.1 DONE Global configuration of AHC [4/4]
rel4
4.1.1 DONE Branding User-agent rel3
4.1.2 DONE Connection limiting per host. rel4
4.1.3 DONE Global proxy. rel4
5 Tasks [12/12]
5.1 DONE License rel1
5.2 DONE Cleanup namespaces rel1
5.2.1 async.http.client
Should contain helper functions to call all HTTP verbs. Default set of call-backs.
5.2.2 async.http.client.request
Lower level of requesting:
- execute-request
- prepare-request
5.3 DONE Release 0.1.0 rel1
5.4 DONE Release 0.1.1 rel2
5.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
5.5.1 DONE Create a changelog rel3
5.6 DONE Release 0.2.1
Release bumps version of async-http-client to v1.3.2.
5.7 DONE Make tests stand-alone rel1
Test suite should not fail when there is now hello-www on port 8080.
5.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.