美文网首页
Swift服务端框架Vapor实现GET请求

Swift服务端框架Vapor实现GET请求

作者: 狂奔的胖蜗牛 | 来源:发表于2018-04-18 22:31 被阅读74次

前提条件:请参考我的文章再次使用Swift服务端框架Vapor3

什么是GET请求

  • GET请求是HTTP协议中的一个方法。
  • GET从服务器上获取数据,也就是所谓的查,仅仅是获取,并不会修改数据。
  • GET交互方式是幂等的,即多次对同一个URL的请求,返回的数据是相同的。
  • GET请求的参数会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。
  • GET请求URL编码格式采用的是ASCII编码,而不是Unicode,所有非ASCII字符都要编码之后再传输。
  • GET请求传输数据大小不能超过2KB。
  • GET请求安全性低,因为是明文传输。

创建项目

#1.打开终端
#2.创建项目
vapor new HelloVapor --branch=beta

这个过程会花费十来分钟的样子。最终成功后结果如图:


image.png
#3.进入项目
cd HelloVapor
#4.构建项目,这一步也会花费比较久时间,建议使用VPN。
vapor build
#5.运行项目
vapor run

运行完毕后,如图所示:


image.png

此时,我们打开浏览器,浏览:
http://localhost:8080/hello

点击后如图所示:


image.png
#6.关闭vapor的运行,使用组合键:Control+C即可
#7.创建出xcode能运行的项目
vapor xcode -y

运行完毕后,Xcode会自动打开项目。

实现GET请求

进入项目中,Sources/App/Routes目录中,找到Routes.swift文件。删除掉setupRoutes()方法中的内容,添加代码,最终Routes.swift内容如下:

 import Vapor

extension Droplet {
    func setupRoutes() throws {
        
        /*
         路由关闭的情况:
         1.响应了请求
         2.抛出异常
         */
        
        //最基本的GET请求
        get("welcom") { request in
            return "Hello"
        }
        
        //URL中包含了/
        get("foo", "bar", "baz") { request in
            return "You request /foo/bar/baz"
        }
        
        //动态路由到某个HTTP方法
        add(.get, "hh") { request in
            return "Dynamically router"
        }
        
        //重新定向
        get("baidu") { request in
            return Response(redirect: "http://www.baidu.com")
        }
        
        //返回json数据
        get("json") { request in
            var json = JSON()
            try json.set("number", 123)
            try json.set("text", "unicorns")
            try json.set("bool", false)
            return json
        }
        
        //模糊匹配路径
        get("anything", "*") { request in
            return "Matches anything anything/anything route"
        }
        
        //404错误
        get("404") { request in
            throw Abort(.notFound)
        }
        
        //错误的请求
        get("error") { request in
            throw Abort(.badRequest)
        }
        
    }
}

我们依次在浏览器中输入如下链接可以看到结果:
http://localhost:8080/welcom
http://localhost:8080/foo/bar/baz
http://localhost:8080/hh
http://localhost:8080/baidu
http://localhost:8080/json
http://localhost:8080/anything/a/b/c/d
http://localhost:8080/404
http://localhost:8080/error

结果依次如下所示:


image.png
image.png
image.png
image.png
image.png
image.png

错误:


image.png
image.png

相关文章

网友评论

      本文标题:Swift服务端框架Vapor实现GET请求

      本文链接:https://www.haomeiwen.com/subject/nvubkftx.html