在Ubuntu搭建Swift Web框架Vapor

2018-07-25 16:54:43 浏览数 (1)

介绍

Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。它快速,安全,现代,并且拥有支持该语言的庞大社区。Swift主要用于开发iOS和macOS应用程序,但从Swift 3开始,您也可以将它用于服务器端应用程序开发。

Vapor是一个流行的服务器端Swift Web框架。与Swift一样,Vapor快速而现代,它支持您在Web框架中为其他编程语言看到的许多功能。

本教程中将教您如何在Ubuntu上安装Swift和Vapor。之后,您将使用Vapor的一个模板创建一个简单的Web应用程序来测试您的设置。

准备

要学习本教程,您需要:

  • 一个Ubuntu 16.04服务器,没有服务器的同学可以在这个页面购买。我建议您免费试用腾讯云开发者实验室体验腾讯云的CVM系统 。
  • 安装Git在您的服务器上。Git应该已经安装在Ubuntu 16.04上,如果没有,请运行sudo apt-get install git命令。

第一步 - 安装Swift

为了能够构建和运行Vapor Web应用程序,首先需要安装Swift。

首先,确保您的系统上有最新的软件包列表:

代码语言:javascript复制
sudo apt-get update

然后安装Swift的准备组件,其中包括clang和一些Python 2.7组件:

代码语言:javascript复制
sudo apt-get install clang libicu-dev libpython2.7

之后,下载最新的Swift二进制文件:

代码语言:javascript复制
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz

接下来,确认您的下载没有损坏或被篡改。将Swift的PGP密钥导入,用于验证签名文件:

代码语言:javascript复制
gpg --keyserver hkp://pool.sks-keyservers.net 
      --recv-keys 
      '7463 A81A 4B2E EA1B 551F  FBCF D441 C977 412B 37AD' 
      '1BE1 E29A 084C B305 F397  D62A 9F59 7F4D 21A5 6D5F' 
      'A3BA FD35 56A5 9079 C068  94BD 63BC 1CFE 91D3 06C6' 
      '5E4D F843 FB06 5D7F 7E24  FBA2 EF54 30F0 71E1 B235'

您会看到此输出结果:

代码语言:javascript复制
...
gpg: key 412B37AD: public key "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>" imported
gpg: key 21A56D5F: public key "Swift 2.2 Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key 91D306C6: public key "Swift 3.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: key 71E1B235: public key "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 4
gpg:               imported: 4  (RSA: 4)

导入密钥后,下载您之前下载的版本的签名文件:

代码语言:javascript复制
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig

要验证此签名文件,请运行下一个命令,该命令如下:

代码语言:javascript复制
gpg --verify swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig

您会看到此输出结果:

代码语言:javascript复制
gpg: assuming signed data in `swift-4.0-RELEASE-ubuntu16.04.tar.gz'
gpg: Signature made Wed 20 Sep 2017 01:13:38 AM UTC using RSA key ID 71E1B235
gpg: Good signature from "Swift 4.x Release Signing Key <swift-infrastructure@swift.org>"
Primary key fingerprint: 5E4D F843 FB06 5D7F 7E24  FBA2 EF54 30F0 71E1 B235

您可能会看到如下警告:

代码语言:javascript复制
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.

这意味着您的Swift密钥尚未受信,这是由您或您在密钥中安装的其他密钥明确指定的。您可以忽略此消息。但是,如果您遇到其他错误,则应重新下载Swift二进制文件。

现在,我们可以安装Swift。请执行以下命令以解压缩先前下载的二进制文件:

代码语言:javascript复制
tar xzf swift-4.0-RELEASE-ubuntu16.04.tar.gz

之后将Swift工具链添加到路径中,以便可以在swift系统范围内运行命令:

代码语言:javascript复制
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

输入此命令只会将swift命令添加到当前shell会话的路径中。要确保在将来的会话中自动添加它,请将其添加到.bashrc文件中。

打开.bashrc文件:

代码语言:javascript复制
nano ~/.bashrc

在文件末尾添加以下行

代码语言:javascript复制
. . .
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"

保存并退出该文件。

要确保一切正常,请运行swift命令:

代码语言:javascript复制
swift

您会看到Swift REPL的欢迎结果,表明安装一切正常。

代码语言:javascript复制
Welcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance.
  1>  

让我们再次仔细检查一切是否正常。输入以下程序,它将1和5之间的所有整数相加。在REPL中输入每一行,并在每行后按ENTER键:

代码语言:javascript复制
var x = 0
for i in 1...5 { 
    x  = i 
} 
x

REPL将显示计算结果:

代码语言:javascript复制
$R0: Int = 15

按CTRL D键退出Swift REPL 。现在您已经安装了Swift,可以准备好安装Vapor了。

第二步 - 安装Vapor

要安装Vapor,您将从Vapor开发者提供下载并执行一个脚本,该脚本会将Vapor的官方软件包存储库添加到服务器的软件包列表中。之后使用apt来安装最新版本的Vapor。

首先,使用curl并带有-o指令的命令将安装脚本下载到服务器,以指定本地文件名:

代码语言:javascript复制
curl -sL apt.vapor.sh -o apt.vapor.sh

使用less命令检查此脚本:

代码语言:javascript复制
less apt.vapor.sh

检查安装脚本的内容后,执行脚本以添加存储库:

代码语言:javascript复制
bash ./apt.vapor.sh

系统将提示您输入sudo密码。输入它以便脚本可以添加新的安装包源。

脚本完成后,您可以安装vapor包及其依赖项。

代码语言:javascript复制
sudo apt-get install vapor

您可以使用Vapor开发者提供的其他脚本验证是否已成功安装Vapor。再一次下载脚本,检查并执行:

代码语言:javascript复制
curl -sL check.vapor.sh -o check.vapor.sh
less check.vapor.sh
bash ./check.vapor.sh

看到此输出结果表明Vapor已成功安装:

代码语言:javascript复制
✅ Compatible with Vapor 2

现在已经安装了Swift和Vapor,您可以创建第一个Vapor应用程序。

第三步 - 创建一个Vapor应用程序

要创建应用程序,我们将使用Vapor提供的默认模板。该web模板允许您创建面向用户的Web应用程序。

此模板假设您正在使用Git,并且您已使用您的名称和电子邮件地址对其进行了配置。如果还没有,您可能会看到一条错误消息,告诉您配置Git。您可以忽略此消息,或执行以下命令以提供您的详细信息: git config --global user.email "your_email@example.com" git config --global user.name "Your Name"

要从此模板创建Web应用程序,请执行以下命令:

代码语言:javascript复制
vapor new demo --template=web

该脚本使用您指定的名称在新目录中生成新应用程序:

代码语言:javascript复制
Cloning Template [Done]
Updating Package Name [Done]
Initializing git repository [Done]
...
               _       __    ___   ___   ___
                 /  / /  | |_) / /  | |_)
               _/  /_/-- |_|   __/ |_| 
                 a web framework for Swift
​
              Project "demo" has been created.
       Type `cd demo` to enter the project directory.
   Use `vapor cloud deploy` to host your project for free!
                           Enjoy!

如果您想创建API而不是完整的Web应用程序,可以使用api模板并输入vapor new demo --template=api

运行我们的应用程序来看看。

第四步 - 编译并运行Vapor应用程序

与Python或Ruby中的应用程序不同,Swift应用程序必须编译。这意味着在运行Vapor应用程序之前,您必须运行构建过程。

首先,切换到新创建的demo文件夹:

代码语言:javascript复制
cd demo

然后执行vapor build命令来编译Web应用程序。

代码语言:javascript复制
vapor build

第一次构建应用程序时,该过程将获取一些依赖项。它将缓存这些并在将来跳过此步骤,缩短构建过程。

构建过程完成后,使用以下命令运行应用程序:

代码语言:javascript复制
vapor run serve

服务器将启动,显示此输出结果:

代码语言:javascript复制
Running demo ...
...
Starting server on 0.0.0.0:8080

您将看到有关不安全的哈希和密钥的警告,但您可以在尝试运行时忽略它们。构建自己的应用程序时,请按照警告提供的说明进行操作。

打开您的Web浏览器并访问http://your_server_ip:8080以查看您正在使用的Vapor应用程序的欢迎页面。

结论

Swift社区正在稳步增长,并且有很多方法可以参与其中。虽然Swift主要用于构建原生iOS和macOS应用程序,但Linux平台上的Swift正在崛起。更多有关Swift开发的知识,请点击腾讯云 社区进行查看。


参考文献:《How To Install Swift and Vapor on Ubuntu 16.04 》

0 人点赞