DemoServer.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. //
  2. // DemoServer.swift
  3. // Swifter
  4. //
  5. // Created by Damian Kolakowski on 14/11/14.
  6. // Copyright (c) 2014 Damian Kołakowski. All rights reserved.
  7. //
  8. import Foundation
  9. func demoServer() -> HttpServer {
  10. let server = HttpServer()
  11. server["/test"] = { request in
  12. var headersInfo = ""
  13. for (name, value) in request.headers {
  14. headersInfo += "\(name) : \(value)<br>"
  15. }
  16. let response = "<html><body>Url: \(request.url)<br>Method: \(request.method)<br>\(headersInfo)</body></html>"
  17. return .OK(.RAW(response))
  18. }
  19. server["/params/(.+)/(.+)"] = { request in
  20. var capturedGroupsIngo = ""
  21. for (index, group) in enumerate(request.capturedUrlGroups) {
  22. capturedGroupsIngo += "Expression group \(index) : \(group)<br>"
  23. }
  24. let response = "<html><body>Url: \(request.url)<br>Method: \(request.method)<br>\(capturedGroupsIngo)</body></html>"
  25. return .OK(.RAW(response))
  26. }
  27. server["/json"] = { request in
  28. return .OK(.JSON(["posts" : [[ "id" : 1, "message" : "hello world"],[ "id" : 2, "message" : "sample message"]], "new_updates" : false]))
  29. }
  30. server["/redirect"] = { request in
  31. return .MovedPermanently("http://www.google.com")
  32. }
  33. server["/long"] = { request in
  34. var longResponse = ""
  35. for k in 0..<1000 { longResponse += "(\(k)),->" }
  36. return .OK(.RAW(longResponse))
  37. }
  38. server["/demo"] = { request in
  39. return .OK(.RAW("<html><body><center><h2>Hello Swift</h2>" +
  40. "<img src=\"https://devimages.apple.com.edgekey.net/swift/images/swift-hero_2x.png\"/><br>" +
  41. "</center></body></html>"))
  42. }
  43. server["/"] = { request in
  44. var listPage = "<html><body>Available services:<br><ul>"
  45. for item in server.routes() {
  46. listPage += "<li><a href=\"\(item)\">\(item)</a></li>"
  47. }
  48. listPage += "</ul></body></html>"
  49. return .OK(.RAW(listPage))
  50. }
  51. return server
  52. }