[swift-server-dev] Prototype of the discussed HTTP API Spec

Carl Brown carl.brown.swift at linuxswift.com
Fri May 26 17:46:28 CDT 2017


Hi, Paulo,

	Like Helge said, Johannes was already talking in source code (see https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170403/thread.html#422 <https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170403/thread.html#422> and https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170410/thread.html <https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170410/thread.html> for the week of threads), and I tried to follow along with that API which had already talked about on the list.

	I was hoping at this point (or some point soon) that we could start talking about an implementation instead of just arguing about the API some more in the abstract.

	I certainly expect we will make changes to the API as we go, I just hope that those changes will have an implementation behind them so that we'll be able to discuss those changes with an understanding of what the performance implications are and examples of how the new API is intended to be used.

	But like I said to Helge, the question of the moment (for you and for the group) is - do you think this is a good enough starting point for us to move it to the https://github.com/swift-server/ <https://github.com/swift-server/> organization and start iterating via GitHub issues & Pull Requests, or do you think we're still at the stage where we need to have more email discussions about it before we're ready to take that step?

-Carl

-- 
Carl Brown, Swift at IBM
Carl.Brown1 at IBM.com <mailto:Carl.Brown1 at IBM.com> (Work)
Austin, TX 

> On May 26, 2017, at 3:32 PM, Paulo Faria via swift-server-dev <swift-server-dev at swift.org> wrote:
> 
> I'm glad we can start talking in source code now. Chris sent me the link before, so I had time to create a counterproposal concerning the 3 files mentioned. In the readme I have the rationale for the design decisions. I also used jazzy to create an API reference. Here are the links:
> 
> https://github.com/paulofaria/http-api-proposal <https://github.com/paulofaria/http-api-proposal>
> https://paulofaria.github.io/http-api-proposal/ <https://paulofaria.github.io/http-api-proposal/>
> 
> 
> 
> On 26 May 2017 at 13:00, Chris Bailey via swift-server-dev <swift-server-dev at swift.org <mailto:swift-server-dev at swift.org>> wrote:
> There's been a lot of discussion around the HTTP API spec originally created by Johannes Weiss with input of a number of other people (particularly Helga Hess): 
>         https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170403/000422.html <https://lists.swift.org/pipermail/swift-server-dev/Week-of-Mon-20170403/000422.html> 
> 
> Since then some work has been done by Carl Brown and others on a prototype of a clean (not derived from existing code) implementation of that API. You can find that prototype here:        https://github.com/carlbrown/HTTPSketch <https://github.com/carlbrown/HTTPSketch> 
> 
> The API itself is essentially implemented in three files: 
> HTTPRequest:        https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPRequest.swift <https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPRequest.swift> 
> HTTPResponse:        https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPResponse.swift <https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPResponse.swift> 
> 
> HTTPCommon:        https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPCommon.swift <https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPCommon.swift> 
> 
> The prototype has some dependencies on the CHTTParser and BlueSocket libraries from IBM-Swift in order to have working implementation, but we've attempted to abstract those away so that they're easily replaced with another implementation - eventually the aim is to move to standard implementations from the Server API project and to utilise the secure transport implementation being worked on under the Security stream. 
> 
> We're proposing to use this as the starting point and move it into the swift-server org on GitHub. From there we can then collaborate and iterate on improving/evolving the API surface and the implementation through discussion on the mailing list and PRs. 
> 
> The hope is that having an independent concrete implementation should make it much easier for us to iterate on and experiment with changes to the API and implementation as can all see how it affects a real implementation, including being able to assess performance and memory footprint costs of alternative approaches, etc. 
> 
> Please take a look. If people are happy to use this as an initial implementation of HTTP API spec that's been layed out so far, we'll move it over to the swift-server org on GitHub. This is by no means the final API or implementation - there's definitely lots that still needs to be discussed. Once its on the swift-server org we'll start looking at the API and implementation choices in-depth via the mailing list and PRs. 
> 
> Chris
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number 741598. 
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> 
> _______________________________________________
> swift-server-dev mailing list
> swift-server-dev at swift.org <mailto:swift-server-dev at swift.org>
> https://lists.swift.org/mailman/listinfo/swift-server-dev <https://lists.swift.org/mailman/listinfo/swift-server-dev>
> 
> 
> _______________________________________________
> swift-server-dev mailing list
> swift-server-dev at swift.org
> https://lists.swift.org/mailman/listinfo/swift-server-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-server-dev/attachments/20170526/0be0e0d9/attachment.html>


More information about the swift-server-dev mailing list