使用Swift4+Vapor写后端-初体验

使用Swift4+Vapor写后端-初体验_第1张图片

简介

Vapor 是一个基于纯 Swift 构建出的 Web 开发框架,目前可以运行在 macOS 和 Ubuntu ,用于构建出漂亮易用的网站或者 API 服务。
Vapor的官网做的很漂亮,文档也比较完整,是一款比较主流、优雅、更新活跃的框架,非常适合初学者。

环境配置

  • Xcode 9.3
  • Swift 4.1
  • Vapor Toolbox: 3.1.4

安装

安装官方文档安装步骤即可。

macOS下,首先要安装Xcode9

安装Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装Vapor。

brew install vapor

新建项目

创建一个名为“helloWorld”的项目。

vapor new helloWorld

vapor的文件结构类似于其他Web框架。


helloWorld
├── Config
│   ├── app.json
│   ├── crypto.json
│   ├── droplet.json
│   ├── fluent.json
│   └── server.json
├── Package.pins
├── Package.swift
├── Public
├── README.md
├── Sources
│   ├── App
│   │   ├── Config+Setup.swift
│   │   ├── Controllers
│   │   │   └── PostController.swift
│   │   ├── Droplet+Setup.swift
│   │   ├── Models
│   │   │   └── Post.swift
│   │   └── Routes
│   │       └── Routes.swift
│   └── Run
│       └── main.swift
├── Tests
│   ├── AppTests
│   │   ├── PostControllerTests.swift
│   │   ├── RouteTests.swift
│   │   └── Utilities.swift
│   └── LinuxMain.swift
├── circle.yml
└── license

项目主体目录层级

helloWorld
└── Sources
    └── App
        └── Routes.swift

编译之前需要拉取项目所有的依赖包,Vapor使用Swift Package Manager 来管理包,使用vapor fetch命令进行拉取依赖,拉取到本地后后所有的包源码将会在 Packages 目录中,如下:

CLibreSSL-1.0.0     Fluent-1.1.0        Node-1.0.1          Turnstile-1.0.3
CMySQL-1.0.0        FluentMySQL-1.0.1   PathIndexable-1.0.0 Vapor-1.2.0
Console-1.0.1       JSON-1.0.1          Polymorphic-1.0.1   VaporMySQL-1.1.0
Core-1.0.0          Jay-1.0.0           Routing-1.0.1
Crypto-1.0.1        Leaf-1.0.3          Socks-1.2.0
Engine-1.3.0        MySQL-1.0.2         TLS-1.1.0

这类似于iOS中使用cocoapods管理依赖包时的pod install

编译和运行

使用vapor build或者vapor build --release编译项目
使用vapor run serve运行项目。

这时就可以通过在浏览器中输入localhost:8080/plaintext 或者运行curl localhost:8080/plaintext来请求模板中的示例请求。

使用Xcode

cd进入项目目录下,我们可以使用 vapor xcode命令生成Xcode项目,然后就可以直接使用 Xcode进行web开发了,这对于iOS开发者是那么的熟悉。用Xcode打开项目,选择Run scheme来运行。

vapor模板中Routes.swift中已经有了几个示例,例如:

get("hello") { req in
            var json = JSON()
            try json.set("hello", "world")
            return json
        }

我们运行起来项目后,直接在浏览器里输入“0.0.0.0:8080/hello”这个get请求,就会返回响应的json数据。

{
hello: "world"
}

最后

vapor初步了解,感觉很不错的样子。现在我们已经了解了vapor的基本操作,下一步我们学习一下使用Heroku部署服务器。Heroku为个人用户提供了一个免费沙盒(512 MB RAM │ 1 web/1 worker),我们可以使用它免费去部署一个属于自己的服务器。访问速度是有点慢,毕竟国外免费。新开的坑,希望接下来能够慢慢填。

相关参考

vapor3.0 文档

你可能感兴趣的:(使用Swift4+Vapor写后端-初体验)