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的新文件,并将以下内容添加到其中。

指示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上运行新应用程序。 去建立伟大的东西。