{"action":"created","issue":{"url":"https://api.github.com/repos/apple/swift-corelibs-foundation/issues/299","repository_url":"https://api.github.com/repos/apple/swift-corelibs-foundation","labels_url":"https://api.github.com/repos/apple/swift-corelibs-foundation/issues/299/labels{/name}","comments_url":"https://api.github.com/repos/apple/swift-corelibs-foundation/issues/299/comments","events_url":"https://api.github.com/repos/apple/swift-corelibs-foundation/issues/299/events","html_url":"https://github.com/apple/swift-corelibs-foundation/pull/299","id":143029094,"number":299,"title":"Basic NSURLSession implementation","user":{"login":"danieleggert","id":869753,"avatar_url":"https://avatars.githubusercontent.com/u/869753?v=3","gravatar_id":"","url":"https://api.github.com/users/danieleggert","html_url":"https://github.com/danieleggert","followers_url":"https://api.github.com/users/danieleggert/followers","following_url":"https://api.github.com/users/danieleggert/following{/other_user}","gists_url":"https://api.github.com/users/danieleggert/gists{/gist_id}","starred_url":"https://api.github.com/users/danieleggert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danieleggert/subscriptions","organizations_url":"https://api.github.com/users/danieleggert/orgs","repos_url":"https://api.github.com/users/danieleggert/repos","events_url":"https://api.github.com/users/danieleggert/events{/privacy}","received_events_url":"https://api.github.com/users/danieleggert/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2016-03-23T17:35:14Z","updated_at":"2016-08-02T10:55:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apple/swift-corelibs-foundation/pulls/299","html_url":"https://github.com/apple/swift-corelibs-foundation/pull/299","diff_url":"https://github.com/apple/swift-corelibs-foundation/pull/299.diff","patch_url":"https://github.com/apple/swift-corelibs-foundation/pull/299.patch"},"body":"I'm creating this pull request to get feedback on my implementation so far.\r\n\r\nThere are still many *TODOs* in the code, but it’s far along enough to evaluate the architecture and design I have chosen for this task. I’ve tried to outline quite a bit in the code itself in form of comments. Please let me know:\r\n\r\n* which parts need more explanation\r\n* which parts should be redesigned\r\n* which parts need more testing\r\n\r\nThe `NSURLSession.swift` file has a **NSURLSession API implementation overview**.\r\n\r\nAs for testing, I'm hoping to spend quite a bit of time on building an in-process HTTP server to better test some of the desired behaviour. Particularly when testing things such as different payloads, headers, and `POST` / `PUT` requests that's the only way to get good testing.\r\n\r\nI'd like to split the `NSURLSession+libcurl.swift` file into multiple smaller files, but that'd break with the existing style. Any thoughts?\r\n\r\nThe `CFURLSessionInterface.{c,h}` files are very verbose in order to not expose libcurl directly. This was suggested by @phausler and @rothomp3 — but I'm not sure if this is what they were hoping for.\r\n\r\nAll unimplemented code should still be marked with `NSUnimplemented()` where applicable.\r\n\r\nThis does not at all try to implement so-called *background* session which would have\r\nto rely on a system daemon to perform HTTP requests white the app is not running (either\r\nsuspended or terminated). Such code would have to rely on IPC and the launchd equivalent\r\non the platform it is running on.\r\n"},"comment":{"url":"https://api.github.com/repos/apple/swift-corelibs-foundation/issues/comments/236871145","html_url":"https://github.com/apple/swift-corelibs-foundation/pull/299#issuecomment-236871145","issue_url":"https://api.github.com/repos/apple/swift-corelibs-foundation/issues/299","id":236871145,"user":{"login":"mominul","id":9459891,"avatar_url":"https://avatars.githubusercontent.com/u/9459891?v=3","gravatar_id":"","url":"https://api.github.com/users/mominul","html_url":"https://github.com/mominul","followers_url":"https://api.github.com/users/mominul/followers","following_url":"https://api.github.com/users/mominul/following{/other_user}","gists_url":"https://api.github.com/users/mominul/gists{/gist_id}","starred_url":"https://api.github.com/users/mominul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mominul/subscriptions","organizations_url":"https://api.github.com/users/mominul/orgs","repos_url":"https://api.github.com/users/mominul/repos","events_url":"https://api.github.com/users/mominul/events{/privacy}","received_events_url":"https://api.github.com/users/mominul/received_events","type":"User","site_admin":false},"created_at":"2016-08-02T10:55:15Z","updated_at":"2016-08-02T10:55:15Z","body":"@danieleggert Is this pull request ready to merge?"}}
{"actor":{"display_login":"mominul"}}