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

Chris Bailey BAILEYC at uk.ibm.com
Fri May 26 15:00:20 CDT 2017


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

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

The API itself is essentially implemented in three files:
HTTPRequest:    
https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPRequest.swift
HTTPResponse:   
https://github.com/carlbrown/HTTPSketch/blob/master/Sources/HTTPSketch/HTTPResponse.swift

HTTPCommon:     
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-server-dev/attachments/20170526/6d9263f4/attachment.html>


More information about the swift-server-dev mailing list