Last active
March 1, 2018 10:22
-
-
Save jinahadam/701ae5d93f15018040848c8af86fb76f to your computer and use it in GitHub Desktop.
#swift #perfect
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let server = HTTPServer() | |
server.serverPort = 8080 | |
server.documentRoot = "webroot" | |
var routes = Routes() | |
routes.add(method: .get, uri: "/", handler: { | |
request, response in | |
response.setBody(string: "Hello, Perfect").completed() | |
}) | |
func returnJSONMessage(message: String, response: HTTPResponse) { | |
do { | |
try response.setBody(json: ["message": message]) | |
.setHeader(.contentType, value: "application/json") | |
.completed() | |
} catch { | |
response.setBody(string: "Error handling Request: \(error)") | |
.completed(status: .internalServerError) | |
} | |
} | |
routes.add(method: .get, uri: "/hello", handler: { | |
request, response in | |
returnJSONMessage(message: "Hello, JSON", response: response) | |
}) | |
routes.add(method: .get, uri: "/hello/nested", handler: { | |
request, response in | |
returnJSONMessage(message: "Hello, nested, JSON", response: response) | |
}) | |
routes.add(method: .get, uri: "/beers/{num_beers}", handler: { | |
request, response in | |
guard let numberBeerString = request.urlVariables["num_beers"], | |
let numberBeersInt = Int(numberBeerString) else { | |
response.completed(status: .badRequest) | |
return | |
} | |
returnJSONMessage(message: "beer \(numberBeersInt - 1)", response: response) | |
}) | |
routes.add(method: .post, uri: "post", handler: { | |
request, response in | |
guard let name = request.param(name: "name") else { | |
response.completed(status: .badRequest) | |
return | |
} | |
returnJSONMessage(message: "Hello \(name)", response: response) | |
}) | |
server.addRoutes(routes) | |
do { | |
try server.start() | |
} catch PerfectError.networkError(let err, let msg) { | |
print("Network error thrown: \(err), \(msg)") | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment