Vapor3写后端-初体验

之前的文章

  1. 使用Swift4+Vapor写后端-初体验
  2. 使用Swift4+Vapor写后端-部署heroku服务器
  3. 使用Swift4+Vapor写后端-Droplet和Route
  4. 使用Swift4+Vapor写后端-示例&套路
  5. 使用Swift4+Vapor写后端-总结

以上使用的是vapor2

前言

由于 Apple 发布了事件驱动的非阻塞网络框架 SwiftNIO 的缘故,Vapor 3 以迅雷不及掩耳盗铃当之势将其接入,导致 Vapor 2 和 Vapor 3 的语法差异很大。

创建项目

我们使用vapor new helloVapor创建一个名为helloVapor的空项目,vapor默认创建的模板项目中已经为我们写了一些初始化代码。项目结构如下:

.
├── Public
├── Sources
│   ├── App
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── boot.swift
│   │   ├── configure.swift
│   │   └── routes.swift
│   └── Run
│       └── main.swift
├── Tests
│   └── AppTests
└── Package.swift

App

这是应用程序中最重要的文件夹,它是所有应用程序逻辑的所在。

Controllers

控制器是将应用逻辑分组在一起的好方式。大多数控制器具有许多功能,接受请求并返回某种响应。

Models

模型文件夹用来存放模型文件。

boot.swift

此文件包含一个函数,该函数将在应用程序启动后调用。我们可以在访问这里的应用程序,也可以使用该应用程序来创建可能需要的任何服务。

configure.swift

此文件包含一个函数,该函数接收应用程序的配置、环境和服务作为输入参数。在这里来改变应用的配置或注册服务。

routes.swift

在这里创建路由。

项目初体验

与vapor2中的Droplet不同,vapor3使用Application作为一个服务容器,它负责注册路由,启动服务器,中间件 (middleware)等等。如示例代码app.swift中:

public func app(_ env: Environment) throws -> Application {
    var config = Config.default()
    var env = env
    var services = Services.default()
    try configure(&config, &env, &services)
    let app = try Application(config: config, environment: env, services: services)
    try boot(app)
    return app
}

main.swift中调用了该方法初始化了一个Application,然后调用其run方法启动服务。
其中try configure(&config, &env, &services)这里调用了configure.swift文件中的public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws方法,用来注册服务、路由、中间层,并配置数据库和模型。具体内容见项目的示例代码,这里不再赘述。

运行

使用vapor run或者vapor xcode创建xcode项目并选择runtarget来运行项目。
控制台打印 Server starting on http://localhost:8080 项目运行成功,然后我们调用一下默认的接口,在浏览器中输入http://localhost:8080/hello,会看到返回的字符串:Hello, world!
接下来可以尝试自己写一些简单的get/post请求。

参考

vpaor文档

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,023评论 3 119
  • Change.
    澈宝龙阅读 165评论 0 0
  • 乍见翻疑梦,相看初泫然。千般幽愫蹙眉弯。怎遣相思、难系木兰船。 聚似春溪雪,分如夏浦烟。素衣初透夜风寒。谩把情丝、...
    大老鲍阅读 556评论 11 46
  • 文/映日 很喜欢一句话,人生就是一场旅行,身体和心总有一个在路上。 我生在浙江南部的一个小镇上,到大学为止,去过最...
    映日映日阅读 315评论 2 1
  • 现在所有人都骂我人渣,跟李香结婚后,我出轨了。 通过这里来回忆记录一些发生过的事情,也算是对自我的一种反省...
    卫之阅读 389评论 0 0