当前位置:   article > 正文

如何在服务器上使用Swift进行编码

swift连接应用服务器
最终产品图片
您将要创造的

自Apple首次推出Swift作为Objective-C的后继产品以来,它彻底改变了社区对iOS,macOS,watchOS和tvOS应用进行编码的方式。 当Swift成为开源平台时,它为移动和客户端应用程序之外的语言提供了新的可能性-Swift也成为服务器语言! 在本教程中,您将学习什么是服务器端Swift,以及为什么要在后端使用Swift。

服务器端Swift计划由三个杰出的项目推动-Qutheory的VaporIBM的KituraPerfect –旨在让Swift开发人员创建完全成熟的后端服务。 从本质上讲,这将使此类开发人员转变为全栈开发人员,从而无需依赖Node或PHP或控制BaaS平台(例如Google的Firebase)。

本文目的

在本文中,您将学习有关服务器端Swift的所有知识。 首先,我将说明服务器端Swift的工作原理,然后向您展示如何开始使用Kitura,Vapor和Perfect框架。

什么是服务器端Swift?

Swift于2014年由Apple首次发布,并Swift成为增长最快的编程语言之一。 Swift借鉴了许多最好的当代语言,例如Python,它既优雅又易于使用。 它使工程师摆脱了Objective-C的技术束缚,从而使工作更流畅,更直观。

2015年12月,Apple再次发布了一项具有里程碑意义的公告,并使其Swift语言及其支持库,调试器和程序包管理器成为Apache 2.0许可下的开源项目,为公众开放了平台以创建拉取请求和有助于。 从Objective-C的转变不仅吸引了许多向App Store做出贡献的Objective-C开发人员,而且使所有技能和背景的开发人员都可以通过Swift轻松进入Apple生态系统。

但是,尽管从历史上看,苹果的开发工具使开发人员更容易为App Store创建视觉上引人入胜的引人入胜的应用程序,但一个值得注意的瓶颈是,项目仍需要专业的后端开发人员来创建复杂的数据驱动的应用程序。 因此,iOS和macOS开发人员要么需要Python,PHP或Node开发人员的帮助来创建他们的后端数据库,要么自己掌握这项技能,从而导致要完成项目目标的工作量大大增加。

尽管后端即服务(BaaS)已经为iOS开发人员带来了帮助,但无代码的后端解决方案(例如Google的Firebase和苹果自己的CloudKit)减轻了后端的复杂性,但许多团队和项目有更多需求。 这就是服务器端Swift出现的地方,它允许您创建一个成熟的多线程后端服务器,该服务器是开源的并且可以无限地配置。

服务器端Swift可让您选择如何使用AWS,RackSpace或您自己的物理服务器托管后端服务器。 您还可以选择如何对服务器进行负载平衡(例如通过流行的服务器解决方案,例如NGINX)以及如何将数据持久存储在数据库中(例如,NoSQL解决方案,例如MongoDB,或传统数据库,例如Postgres,MySQL或Oracle) 。 不仅如此,而且您永远不会局限于一个组件解决方案,您可以在不影响整个应用程序代码库的情况下进行切换。

关键是,通过选择开源服务器端Swift解决方案(如Qutheory的VaporIBM的KituraPerfect) ,您可以利用大量的插件,使您可以按照自己的方式配置后端利用现有团队在Swift中的技能来做到这一点。

服务器端Swift当然听起来很引人注目,但是哪个框架适合您? 接下来,我们从Kitura开始依次介绍每个组件。

Kitura入门

总览

Kitura开始,您有了一个平台,该平台最初于2016年2月发布,并于当年晚些时候在Apple的WWDC上声名显赫,代表着IBM尝试使用Swift支持服务器端网络,然后将其从Apple手里转变为开源。

一般来说,Kitura专注于约定而不是配置:在选择要构建的特定框架和库之前,它会使用存根构建初始项目。 Kitura的身份验证机制由其自己的Kitura-Credentials中间件框架支持,您可以使用处理JSON Web令牌 (JWT)的OpenID从大量的身份验证机制中进行选择,从传统的用户名/密码到社交媒体登录和联合身份验证。 )。

Kitura的数据库ORM解决方案由Kuery提供支持,以消除直接处理SQL的复杂性,它通过各种其他兼容插件原生支持常见的关系数据库(例如MySQL,SQLite和PostgreSQL)以及其他数据库解决方案,包括NoSQL数据库。

Kitura还使用诸如StencilMarkdown之类的流行插件,为诸如HTML模板之类的事情提供了其他有用的插件。 来自IBM的服务器端框架还得益于与IBM Watson API的紧密连接,并提供了直接集成到其Bluemix云平台中的本机macOS支持。 这提供了一个可供您使用的附加选项,以及跨Linux / Unix和macOS服务器的其他传统部署选项。

尽管该平台确实提供了一组独特的功能(从Kuery到与各种IBM API库集成的功能),但它不具备Vapor拥有的社区影响力。 采纳Kitura要求欣赏和拥抱自己的非传统方式,从Kuery的运作方式到其认证机制。 但是,鉴于它得到了一家专注于企业的大公司的支持,因此内置了一些面向未来的保证。

Kitura文档页面

安装和运行Kitura

入门的最快方法是使用macOS和Linux均支持的Kitura命令行界面(CLI)。 使用流行的软件包管理实用程序Homebrew ,输入以下内容来安装Kitura和Kitura CLI:

  1. $ brew tap ibm-swift/kitura
  2. $ brew install kitura

在将用作项目的空文件夹中,运行以下命令来初始化项目:

$ kitura init

完成骨架应用程序的生成后,您会注意到一个名为HelloKitura.xcodeproject的新项目。 您可以通过参考Kitura的官方文档来了解有关项目生成的更多信息。 您可以在Xcode中打开新生成的项目,然后编辑主应用程序类Application.swift ,以处理对服务器根目录http:// localhost:8080 / URL的所有调用:

  1. // Handle HTTP GET requests to "/"
  2. router.get("/") { request, response, next in
  3. response.send("Hello, World!")
  4. next()
  5. }

上面的代码段通过返回经典的Hello,World!进行响应 。 在最终运行项目之前,请更改Xcode方案以指向HelloKitura(您的活动项目),然后按Command - R启动项目。 在服务器运行时,在您选择的浏览器中,转到http:// localhost:8080 ,您应该在浏览器中看到hello world文本。

更多信息

查看以下链接,了解有关Kitura的更多信息。

蒸气入门

总览

在2016年9月,比Kitura发行晚了几个月,就社区规模和插件数量而言, Qutheory的Vapor被广泛认为是最受欢迎的。 它建立在Apple的Swift-nio框架之上,使其成为真正的性能强国。 与Kitura和其他平台(不是完全在Swift中构建,而是在Node.js或其他中间解析器上构建)不同,Vapor将其自身与任何依赖项分离以提供Swift解析器并提供清晰易读的API。

蒸气文件页面

Vapor为SQL供应商(如MySQL和PostgreSQL)以及NoSQL供应商(如Redis和MongoDB,如Kitura)提供全面的数据库支持。 Kitura拥有自己的Kuery ORM解决方案,而Vapor利用Fluent ORM支持我刚刚提到的数据库,这使得将ORM扩展到其他第三方数据库提供商相对容易。 Vapor在自身支持Apple的Push Notification Service以及支持SMTP推送电子邮件通知方面与其他框架独立。

Kitura实现了自己的身份验证框架,而Vapor将Stormpath的Turnstile身份验证库本地移植 。 与Kitura一样,该平台也支持Mustache和Markdown模板,以及其自己的Swift原生表达模板语言Leaf 。 与其他服务器端Swift框架一样,Vapor还具有自己的CLI引擎,并具有使用自定义标志扩展应用程序命令行参数的功能。

安装和运行

要开始使用Vapor,请先安装Vapor工具箱 ,该工具箱由所有库依赖项和CLI工具箱组成。 在终端中输入以下内容,使用Homebrew进行安装:

$ brew install vapor/tap/vapor

安装完成后,您可以通过输入vapor —help确认Vapor已成功安装。 要创建一个项目,请输入以下内容,并用您自己的项目名称代替:

$ vapor new <PROJECT_NAME>

Vapor引擎将构建类似于以下内容的文件夹结构:

  1. .
  2. ├── Public
  3. ├── Sources
  4. │ ├── App
  5. │ │ ├── Controllers
  6. │ │ ├── Models
  7. │ │ ├── boot.swift
  8. │ │ ├── configure.swift
  9. │ │ └── routes.swift
  10. │ └── Run
  11. │ └── main.swift
  12. ├── Tests
  13. │ └── AppTests
  14. └── Package.swift

要实际创建Xcode项目,您还需要在项目文件夹中明确输入以下命令:

$ vapor xcode

最后,要构建和运行项目,请从Xcode中选择“ 运行”方案以及My Mac的部署目标设备,然后像对待其他任何Xcode项目一样按“ 运行”按钮。 如果您的Xcode项目没有遇到任何错误,那么您应该在终端中看到以下确认消息:

Server starting on http://localhost:8080

继续,在您选择的浏览器中输入该URL,您应该看到您的应用程序正在运行。

更多信息

请查看以下链接以获取更多信息。

完美入门

总览

最后,我们来看一下PerfectlySoft的Perfect ,PerfectlySoft是功能强大的服务器端平台,如Vapor和Kitura。 完美包括与以前的供应商相同的标准功能,从使用Moustache或Markdown进行模板到使用Web套接字以及Apple Push Notification和SMTP进行联网。

完善的文档页面

与其他服务器端平台一样,Perfect拥有自己的ORM实施,即StORM平台 (Perfect StORM),该平台为MySQL,PostgreSQL和其他重要关系数据库以及MongoDB,Redis和其他NoSQL解决方案提供本机支持。 Perfect的一个显着遗漏是CLI,但是该框架通过本机macOS应用弥补了这一不足。

像蒸汽,完美也辊闸烤电源其认证机制,扩展更加紧密地结合风暴进行交互。 此解决方案与其他解决方案之间的另一个区别是,它支持许多本机实用程序库,包括它们自己的cURL包装器以及用于处理文件和文件夹的工具。 Perfect的开发人员基础是第二大,几乎与Vapor的开发人员持平,这意味着您拥有一个强大的社区来支持此平台,并且拥有丰富的教育资源,如果您选择它,将给您带来信心。

安装和运行

使用Perfect启动并运行非常简单。 首先,通过输入以下内容克隆PerfectlySoft存储库:

$ git clone https://github.com/PerfectlySoft/PerfectTemplate.git

在克隆的文件夹中,构建项目:

$ swift build

最后,运行项目,该项目将在地址0.0.0.0:8181上运行本地服务器:

.build/debug/PerfectTemplate

您还可以通过首先生成一个新项目,在Xcode上运行您的项目,如下所示:

$ swift package generate-xcodeproj

在Xcode中,确保在构建和运行项目之前将可执行目标指向My Mac

更多信息

请查看以下链接,以获取有关Perfect框架的更多信息。

结论

Swift向开源社区的发布促使Swift解决方案超越了客户端应用程序,后端服务器框架成为下一个前沿领域。 在三个杰出的项目(Qutheory的VaporIBM的KituraPerfect) 的推动下 ,服务器端Swift使iOS(和macOS)工程师成为了全栈开发人员。 这可以消除对Node.js,PHP或.NET后端工程师的依赖。 服务器端Swift也使团队能够控制后端,而不必依赖Firebase或CloudKit等移动后端即服务解决方案。

服务器端Swift并不适合每个人:您必须决定后端需要多少控制权,以及是否适合自己滚动。 另外,我也没有尝试告诉您哪种服务器端Swift解决方案是最好的。 开发人员肯定会选择众多,这三者提供了独特而成熟的方法,值得尝试。 我鼓励您试用每个示例代码,评估语法,并与各自的社区联系,看看哪种解决方案最适合您。

翻译自: https://code.tutsplus.com/tutorials/how-to-code-with-swift-on-the-server--cms-31608

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/610829
推荐阅读
相关标签
  

闽ICP备14008679号