UP | HOME

Asynchronous HTTP Client - Clojure - To Do

Table of Contents

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

4.1.4 DONE Timeout settings   rel4

  1. DONE Request timeout   rel4
  2. DONE Connection timeout   rel4
  3. DONE Idle connection timeout   rel4

4.2 DONE Per request configuration [2/2]   rel4

4.2.1 DONE Proxy configuration   rel3

4.2.2 DONE Timeout   rel4

  1. DONE Request timeout   rel4
  2. DONE Connection timeout   rel4
  3. DONE Idle connection timeout   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.

5.9 DONE Use last argument as key worded map   rel3

As suggested by Licenser on #clojure here.

5.10 DONE Review documentation   rel3

5.11 DONE Refactoring [1/1]   rel3

5.11.1 DONE Refactor execute-request [2/2]

  1. DONE Build checkable promise

    To check if promise was delivered use delivered?

  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

5.12 DONE Rename to http.async.client   rel3

6 Dependencies [0/1]

6.1 Update AsyncHttpClient to 1.9.x

Author: Chris Hapgood

Created: 2019-02-10 Sun 20:48

Emacs 24.4.1 (Org mode 8.2.10)

Validate