在Ubuntu搭建Swift Web框架Vapor

介绍

Swift是苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于Mac OSiOS平台,用于搭建基于苹果平台的应用程序。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。

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

sudo apt-get update

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

sudo apt-get install clang libicu-dev libpython2.7

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

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'

您会看到此输出结果:

...
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

您会看到此输出结果:

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

您可能会看到如下警告:

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。请执行以下命令以解压缩先前下载的二进制文件:

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的欢迎结果,表明安装一切正常。

Welcome 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将显示计算结果:

$R0: Int = 15

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

第二步 - 安装Vapor

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

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

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已成功安装:

✅ 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应用程序,请执行以下命令:

vapor new demo --template=web

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

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文件夹:

cd demo

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

vapor build

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

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

vapor run serve

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

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 》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

搭建Linux+Jexus+MariaDB+ASP.NET[LJMA]环境

备注:,将我的博客内容整理成册,首先会在博客里优先发布,后续可能的话整理成电子书,主要从linux的最基础内容开始进入Linux的Mono开发方面的话题。本文是...

3049
来自专栏IT米粉

我的Markdown的利器——Markdown Here、有道云笔记、iPic

Markdown逐渐成为大家文章编辑的首选,这里推荐两个比较冷门的Markdown工具。 用什么当做Markdown的主力工具? 网上有很多人推荐的Markdo...

3474
来自专栏张善友的专栏

Windows Server AppFabric正式发布

Windows Server AppFabric 是一组集成技术,可更轻松地生成、扩展和管理 IIS 上运行的 Web 应用程序和复合应用程序,它是一款主要面向...

2108
来自专栏逆向技术

win32之进程概念

  学习WindowsAPI. 之前.我们必须理解什么是进程. 在windows环境下.进程就是一个运行起来的exe程序

962
来自专栏DannyHoo的专栏

iOS开发中实现OC和Swift的混编

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

3413
来自专栏张善友的专栏

asp.net安全检测工具 --Padding Oracle 检测

最近的一个asp.net安全缺陷,引起了社区很大的反响,博客园也有一个ASP.NET的Padding Oracle安全漏洞的话题,昨天在博客上贴了一个文章ASP...

2657
来自专栏编程

如何在Dynamo中创建UI

我这里说的UI指的是User Interface(用户界面),说白了就是创建窗口,让我们和Dy进行交互。效果大概是这样: ? 接下来我会教大家编写一个简单的界面...

34810
来自专栏编程

python学习手册-环境安装和配置

python学习手册 ? 一、python 安装和配置 下载安装包 首先需要在官网 https://www.python.org/ 下载python的安装...

2249
来自专栏圣杰的专栏

ABP入门系列(12)——如何升级Abp并调试源码

源码路径:Github-LearningMpaAbp 1. 升级Abp 本系列教程是基于Abp V1.0版本,现在Abp版本已经升级至V1.4.2(截至至文章发...

3055
来自专栏伪君子的梦呓

优雅地使用 PyCharm

0.0 前言 昨天教了大家安装和使用PyCharm 后,有朋友留言说 PyCharm 使用的语言是英文,看得头晕,该怎么设置成中文。那我今天就写一个教程,教大...

1.2K5

扫码关注云+社区

领取腾讯云代金券