Skip to content

Commit 7f1dad3

Browse files
author
Tyler Cloutier
authored
Added HTTP example
Need to work on improving the HTTP API to make it more consistent and features.
1 parent 80672ed commit 7f1dad3

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,44 @@ let package = Package(
4646

4747
# Usage
4848

49+
### HTTP
50+
```swift
51+
import Edge
52+
import Foundation
53+
54+
func handleRequest(request: Request) -> Response {
55+
print(String(bytes: request.body, encoding: .utf8)!)
56+
let responseBodyObject = ["message": "Message received!"]
57+
let responseBody = Array(try! JSONSerialization.data(withJSONObject: responseBodyObject))
58+
59+
return Response(
60+
version: Version(major: 1, minor: 1),
61+
status: .ok,
62+
rawHeaders: ["Content-Type: application/json"],
63+
body: responseBody
64+
)
65+
}
66+
67+
let server = HTTP.Server()
68+
server.listen(host: "0.0.0.0", port: 3000).startWithNext { client in
69+
70+
let requestStream = client.read()
71+
requestStream.map(transform: handleRequest).onNext{ response in
72+
client.write(response)
73+
}
74+
75+
requestStream.onFailed { clientError in
76+
print("Oh no, there was an error! \(clientError)")
77+
}
78+
79+
requestStream.onCompleted {
80+
print("Goodbye \(client)!")
81+
}
82+
83+
requestStream.start()
84+
}
85+
```
86+
4987
### TCP
5088
```Swift
5189

0 commit comments

Comments
 (0)