服务器端Swift的启动和运行:第1部分-待办事项列表项目设置
我已经想要了一个基本的,基于浏览器的待办事项列表。 没有任何干扰的东西。 使用Swift构建此库,并了解一些涉及的库似乎是一个不错的起点。
这是一个分为4部分的系列文章,概述了如何设置项目,路由入门,数据库设置以及最终创建应用程序的模型和控制器。
介绍
第1部分将概述一个基本的项目设置,包括使用swift软件包管理器,并让我们开始使用Swift从服务器返回响应中的一些文本。
项目设置
首先,让我们为项目创建一个目录,然后导航到该目录。
mkdir WhatsNext
cd WhatsNext
接下来,我们将使用swift软件包管理器创建一个swift可执行软件包。
swift package init --type可执行文件
现在,生成一个xcode项目。
迅捷包generate-xcodeproj
打开项目并切换到第二个目标。 生成并运行,您应该会在控制台中看到“世界,您好!”。
打开WhatsNext.xcodeproj
完美的服务器设置
添加perfect-HTTPServer作为项目的依赖项。 打开Package.swift
并将以下内容添加到您的依赖关系中。
.package(网址:“ https://github.com/PerfectlySoft/Perfect-HTTPServer.git”,来自:“ 3.0.0”)
还要将"PerfectHTTPServer"
添加为目标的依赖项。 如果您使用的是Swift 3,则上述语法可能会遇到问题。 你可以在这里找到更多。
您最终的Package.swift
应该看起来像这样……
现在,回到终端并更新项目相关性并重新生成xcodeproj。
快速软件包更新
迅捷包generate-xcodeproj
假设没有问题,请将以下导入添加到main.swift
的顶部,然后构建并运行。
导入PerfectLib
导入PerfectHTTP
导入PerfectHTTPServer
服务器需要服务
因此,我们的Web服务器需要提供目录或文件。 为了简单起见,我们将在我们的项目中创建一个名为webroot的文件夹,并在其中添加一个文件供我们的项目使用。
mkdir Webroot
触摸webroot / hello.txt
迅捷软件包regenerate-xcodeproj
添加一些占位符文本以了解正在提供文件。
接下来,我们需要在main.swift
创建服务器。 我们创建一个服务器,设置其端口和documentRoot,启动它并捕获它将引发的任何异常,例如该端口已被使用。
在运行之前,我们需要将目标的文档根目录设置为项目目录。 为此,选择第二个目标,然后edit sceme -> run -> options
并勾选working directory
并提供项目目录。
生成并运行,打开浏览器并导航到localhost:8080
。 您应该看到The file /index.html was not found.
我们需要添加一条到服务器的路由,以便它知道在请求此URL时在哪里看以及该做什么。 我们通过添加到服务器的路由来做到这一点,如下所示。 在这种情况下,我们还将添加一种方法来读取添加到webroot目录中的文件的内容,并处理如果文件不存在可能发生的任何错误。
再次构建,运行并导航到localhost:8080
,您应该看到添加到txt文件中的所有文本。
您可以向服务器添加任意数量的路由,每个路由都有不同的URL。
接下来…
因此,现在我们距待办事项清单仅一步之遥。 我们已经建立并运行了基本的快速Web服务器。 接下来,我们将继续提供一些HTML页面,并使用Mustache将一些计算值注入到HTML中。 单击此链接查看更多。