Vapor - 用Swift编写你的App后台

作者: coderyin | 来源:发表于2016-12-09 09:39 被阅读2784次

    Swift 服务端

    Swfit既可以作为客户端编写语言,又可以编写服务端语言,对于使用Swift语言开发iOS应用的程序猿们,尝试一下自己为App写个后台,乐趣无穷。我相信Swift语言替换掉Objectvie-c是未来的趋势,并且Swift端开源框架也比较成熟,也可以让OC程序猿熟悉Swift语法。本文主要以Vapor框架为例(Perfect框架的性能要优于Vapor,但是部署到云端没有Vapor容易,折腾了半天,最终选择Vapor)本文主要以介绍以下点

    • Vapor的配置
    • Vapor本地部署
    • 部署代码到云(heroku)

    一、配置Vapor框架

    1.检查当前环境

    Vapor目前只支持Swift3.0,Xcode8以上,请自行检查版本(昨天搞了半天Perfect框架,一直报错原因就是Perfect只支持8.1以上Xcode和Swift3.0.1

    2.配置环境

    在命令行中输入命令,检测是否可以运行

    curl -sL check.vapor.sh | bash
    

    没有返回任何消息,就是好消息,下一步下载Vapor toolbox(toolbox可以帮助用户简化一些操作)

    curl -sL toolbox.vapor.sh | bash
    
    imageimage

    安装toolbox

    curl -sL toolbox.vapor.sh | bash
    

    二、hello world 本地部署

    终端输入

    vapor new Hello
    

    接下来,进入Hello工程目录

    cd Hello
    

    进入目录你发现没有可运行的xcode工程有点懵逼是不是,继续输入

    vapor xcode -y
    

    等待时间略长,去抽两根烟吧。

    终于完成了,左上角运行选择App->My Mac

    找到main.swift文件,写入如下代码

    import Vapor
    
    let drop = Droplet()
    
    drop.get("hello") { request in
        return "Hello, world!"
    }
    
    drop.resource("posts", PostController())
    
    drop.run()
    
    

    运行工程
    在浏览器中访问

    http://localhost:8080/hello
    

    或者

    0.0.0.0:8080/hello
    

    或者

    http://127.0.0.1:8080/hello
    

    注意,一定要有端口号如8080,且get的hello区分大小写,仔细看清你的get方法中的参数哦

    hello, world 对于第一次写服务端的人是否有点小激动呢。我们通过get方法获取到数据,其他请求方式同理,只要你的代码没有问题,服务端就会给你返回你请求的数据。自此,本地部署完成。

    三、部署云端

    作为一个程序员,你一定不满足于服务端代码只在自己服务器或局域网内运行,一般服务器也是一笔不小的费用。如果你和我一样只是为了学习,这笔费用有一些大财小用。but,国外一家网站提供免费的代码部署服务,那就是heroku,接下来我们要将我们的hello工程部署到heroku。

    注册heroku

    进入
    heroku注册,注册完并不需要你去创建应用,因为创建应用我们可以直接在终端完成。

    登录并提交应用

    继续我们的终端之旅

    heroku login
    

    之后按照提示输入账户名和密码

    cd <Your Project>
    

    进入你工程目录

    git init
    

    对于使用git的程序猿们,这行代码很熟悉吧

    git add .
    git commit -am "Description"
    

    提交

    到了这里 vapor toolbx登场了

    vapor heroku init
    

    第一个输入y,自定义一个应用名,比如hello
    第二个很重要,问你是否要自定义buildpack,一定选yes,一定选yes,一定选yes

    输入buildpack的地址

    https://github.com/kylef/heroku-buildpack-swift.git
    

    第三个y/n,是否立即上传到heroku,没问题的话,选择y.

    如果buildpack写错了,也可以到heroku控制台中选择对应的app,选择setting,找到其中的buildpack,去修改

    一切顺利的话,打开
    https://yourappname.herokuapp.com/hello 试试吧

    相关文章

      网友评论

      • CaesarsTesla:我是在后台直接创建的app,然后关联github的项目,添加了buildpack
        这样还有没有别的需要注意的,
        我部署的时候出错
        Building Swift
        This may take a very long time...
        Building Swift failed
        Check out the logfile for more information: /app/tmp/cache/swiftenv/tmp/swiftenv-build-4.1/swiftenv-build.20180919095326.288.log
        You can inspect or delete the working tree at: /app/tmp/cache/swiftenv/tmp/swiftenv-build-4.1
        ! Push rejected, failed to compile Swift app.
        ! Push failed

        谢谢
      • 9c2786a55118:Error: Unable to create Heroku app: Creating hello... !
        ▸ Couldn't find that region.

        你好 这个错误是什么意思啊
        罗大满:Would you like to deploy to a region other than the US? 选n
      • Bruce_XHG:https://~~yourappname~~.herokuapp.com/hello 打不开呢
      • 任兴金:请问下您代码里面的PostViewController是用来做什么的呢
      • cdbq:你perfect错误是本地运行是错误还是部署到云上错误

        coderyin:部署到云上时遇到了问题

      本文标题:Vapor - 用Swift编写你的App后台

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