介绍
Swift是Apple的一种编程语言。 它是快速,安全和现代的,它有一个支持语言的巨大社区。 Swift主要用于开发iOS和MacOS应用程序,但从Swift 3开始,您也可以将其用于服务器端应用程序开发。
Vapor是一个流行的服务器端Swift Web框架。 像Swift一样,Vapor是快速和现代的,它支持许多在其他编程语言的Web框架中会看到的功能。
在本指南中,您将在Ubuntu 16.04上安装Swift和Vapor。 然后,您将使用Vapor的模板之一创建一个简单的Web应用程序来测试您的设置。
先决条件
要学习本教程,您将需要:
- 一个非root用户可以访问
sudo
Ubuntu 16.04服务器。 您可以学习如何使用我们的初始服务器设置指南进行设置 。 - 安装在你的服务器上的Git。 Git应该已经安装在Ubuntu 16.04上,但是如果没有,运行
sudo apt-get install git
。
第1步 - 安装Swift
为了能够构建和运行Vapor Web应用程序,首先需要安装Swift。
首先,确保您的系统上有最新的软件包列表:
sudo apt-get update
然后安装Swift的先决条件,其中包括clang
和一些Python 2.7组件:
sudo apt-get install clang libicu-dev libpython2.7
之后,下载最新的Swift二进制文件。 这不是通过apt
可用,但你可以从Swift下载页面手动下载 ,或通过wget
:
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz
接下来,验证您的下载没有被损坏或被篡改。 将Swift的PGP密钥导入您的密钥环,这将用于验证签名文件:
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'
你会看到这个输出:
Output[...
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)
导入密钥后,下载您下载的版本的签名文件:
wget https://swift.org/builds/swift-4.0-release/ubuntu1604/swift-4.0-RELEASE/swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
要验证此签名文件,请运行下一个生成以下输出的命令:
gpg --verify swift-4.0-RELEASE-ubuntu16.04.tar.gz.sig
你会看到这个输出:
Outputgpg: 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
您可能会看到如下所示的警告:
Outputgpg: 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。 执行以下命令来提取您之前下载的二进制文件:
tar xzf swift-4.0-RELEASE-ubuntu16.04.tar.gz
然后将Swift工具链添加到您的路径中,以便您可以在系统范围内运行swift
命令:
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
输入此命令只会将swift
命令添加到当前shell会话的路径中。 为了确保它在将来的会话中自动添加,请将其添加到.bashrc
文件中。
打开.bashrc
文件:
nano ~/.bashrc
在文件的末尾添加以下行
. . .
export PATH=swift-4.0-RELEASE-ubuntu16.04/usr/bin:"${PATH}"
保存并退出该文件。
为了确保一切正常,运行swift
命令:
swift
你会被Swift REPL迎接,这表明一切正常。
OutputWelcome to Swift version 4.0 (swift-4.0-RELEASE). Type :help for assistance.
1>
让我们仔细检查一切正常。 输入1到5之间的所有整数的程序。在REPL中输入每一行,在每行之后按ENTER
键:
var x = 0
for i in 1...5 {
x += i
}
x
REPL将显示计算结果:
Output$R0: Int = 15
用CTRL+D
退出Swift REPL。 现在安装了Swift,我们准备安装Vapor。
第2步 - 安装蒸气
要安装Vapor,您将从Vapor开发者处下载并执行脚本,将Vapor的官方软件包存储库添加到您的服务器的软件包列表中。 然后你将使用apt
来安装最新版本的Vapor。
执行从别人下载的脚本而不先检查它们通常不是一个好的安全措施。 首先,使用带有-o
开关的curl
命令将安装脚本下载到您的服务器,以指定一个本地文件名:
curl -sL apt.vapor.sh -o apt.vapor.sh
使用less
命令来检查这个脚本:
less apt.vapor.sh
检查安装脚本的内容后,执行脚本添加存储库:
bash ./apt.vapor.sh
系统会提示您输入sudo密码。 输入它以便脚本可以添加新的包源。
一旦脚本完成,您可以安装vapor
包及其依赖关系。
sudo apt-get install vapor
您可以通过使用Vapor开发人员提供的其他脚本来验证Vapor是否已成功安装。 再一次,下载脚本,检查它,然后执行它:
curl -sL check.vapor.sh -o check.vapor.sh
less check.vapor.sh
bash ./check.vapor.sh
你会看到这个输出表明Vapor已经安装成功:
Output✅ Compatible with Vapor 2
既然Swift和Vapor都已经安装,你可以创建你的第一个Vapor应用程序。
第3步 - 创建一个VAPP应用程序
要创建我们的应用程序,我们将使用Vapor默认提供的模板。 web
模板可让您创建面向用户的Web应用程序。
这个模板假设你使用的是Git,并且已经使用你的名字和电子邮件地址来配置它。 如果你没有,你可能会看到一个错误消息,告诉你配置Git。 您可以放心地忽略此消息,或者执行这些命令来提供您的详细信息:
git config --global user.email "your_email@example.com"
git config --global user.name "Your Name"
要从此模板创建Web应用程序,请执行以下命令:
vapor new demo --template=web
该脚本使用您指定的名称在新目录中生成一个新的应用程序:
OutputCloning 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应用程序,你可以使用vapor new demo --template= api
的api
模板。
让我们运行我们的应用程序,并看到它的行动。
第4步 - 编译和运行蒸气应用程序
Swift应用程序必须被编译,不像Python或Ruby中的应用程序。 这意味着在你运行你的Vapor应用程序之前,你必须运行一个构建过程。
首先,切换到新创建的demo
文件夹:
cd demo
然后执行vapor build
命令来编译Web应用程序。
vapor build
第一次构建应用程序时,该过程将获取一些依赖关系。 它会缓存这些并在将来跳过这一步,这将使构建过程更快。
构建过程完成后,使用以下命令运行该应用程序:
vapor run serve
服务器将启动,显示这个输出:
OutputRunning demo ...
...
Starting server on 0.0.0.0:8080
你会看到有关不安全的散列和密码键的警告,但是当你试用演示时,你可以忽略它们。 当您构建自己的应用程序时,请按照警告提供的说明进行操作。
打开您的网页浏览器并访问http:// your_server_ip :8080
,查看您正在运行的Vapor应用程序的欢迎页面。
结论
Swift社区正在稳步发展,并且有很多方法可以参与进来。 尽管Swift主要用于构建原生iOS和MacOS应用程序,但Linux平台上的Swift正在兴起。 您可以通过阅读Apple的免费电子书The Swift Programming Language来了解更多有关Swift的信息。 要了解有关Vapor的更多信息,请查看他们的文档 。