Heroku上Kitura入门
Kitura是IBM创建的Web框架。 这是一个非常简单的框架,与Sinatra,Express,Lumen和Flask之类的框架有很多相似之处。 它是用Swift编写的,因此在使用它方面有很多吸引力,因为您可以开始考虑使用相同的语言编写客户端代码(假设您正在为iOS和OS X进行构建)和服务器端代码。
这不是我们第一次看到这种东西。 在基于浏览器的应用程序领域,借助NodeJS之类的工具,您可以在浏览器和服务器上编写Javascript。 在Android上,由于使用Java,您可以与您的后端和应用程序共享代码(这在Java领域绝对是一个巨大的胜利)。
就个人而言,随着Swift 3的发布,我开始对Swift作为服务器端语言非常感兴趣,该版本捆绑在Swift Package Manager(SPM)和Foundation的本机端口中。 对于那些不了解的人来说,Foundation是为Objective-C和Swift带来很多好处的关键框架之一。 由于原始的Foundation库是用Objective-C编写的,因此Linux上的Swift尚无法使用它,但是现在人们已经在努力在Swift中重新实现Foundation本身,并且它开始取得成果。
设定
迅速
为了便于撰写本文,我假设您正在OS X上运行,在这种情况下,您将要跳到App Store并获取Xcode8。如果您不是App Store的粉丝,那么它也是可通过Apple Developer Portal直接下载。
在Linux上进行设置有点麻烦,但是Swift网站上为您概述了一些安装步骤。
安装完所有内容后,您将可以运行:
$ swift-版本
这应该显示您当前已安装的Swift版本。 对于本指南,我假设您正在运行Swift 3.0。
Heroku
接下来,您将要抓住Heroku工具带。 这将为您的计算机设置所有内容,我假设您已经在Heroku中创建了一个帐户,并且此时已使用工具带登录。 不用担心,您现在还不需要创建任何应用。
建立
现在您已经设置好开发环境,我们可以开始实际构建应用程序了。
首先,您将要为您的应用程序创建项目结构。 Swift Package Manager(SPM)在这里为您提供帮助:
$ mkdir myFirstKituraApp
$ cd myFirstKituraApp
$ swift软件包init --type可执行文件
这将为您设置以下标准SPM文件夹结构:
。
├──.gitignore
├──Package.swift
├──套餐
├──资料来源
│└──main.swift
└──测试
Xcode
此时,如果您正在运行OS X和Xcode,则可以生成一个xcodeproj文件,以便开始使用。 如果要执行此操作,则需要运行:
$ swift包generate-xcodeproj
小心! 更新Package.swift文件依赖项并获取它们时,需要运行此程序,以确保项目中具有最新的依赖项。
依存关系
首先,我们需要获取将要使用的Kitura依赖项。 打开Package.swift并确保其外观如下:
部署方式
现在,让我们将该项目发送给Heroku,以便您可以与世界分享您的创作。
首先在项目的根目录中创建一个名为Procfile的新文件,并将以下内容添加到其中。
接下来,您将需要运行以下命令来创建新的Swift应用程序:
$ heroku创建--buildpack https://github.com/kylef/heroku-buildpack-swift.git
此命令使用包含Swift 3.0(当前稳定版本)的自定义buildpack。 您可能有兴趣查看存储库,以便了解创建自定义buildpack涉及的内容。
一旦运行了此命令,您现在应该在您的帐户上有了一个应用程序。 如果您正在免费层上运行此功能,请放心,这足以运行此应用程序。
现在推送您的应用程序:
$ git push heroku master
为您的应用程序构建插件时,此命令将花费少量时间。 它需要获取您的依赖项,并为运行您的插件的Ubuntu Linux OS对其进行编译。
在浏览器中打开新应用程序后,运行:
$ heroku打开
港口
在您的应用程序中,我们必须添加代码来处理PORT环境变量。 这样做是因为Heroku告诉我们的应用程序需要侦听哪个端口才能接收来自Web的请求。 如果您不这样做,则应用程序将尝试侦听不可用的端口8080。
就这样,您正在Heroku上运行新应用程序。 去建立伟大的东西。