Vapor 工具箱能力 封面
Vapor 大型教程

Vapor 工具箱能力

Vapor 工具箱(Toolbox)是一把瑞士军刀。本文带你认识它的常用命令,并用 vapor new 创建、运行你的第一个 Vapor 项目。

Vapor 工具箱是什么

如果你上一节中使用了 vapor --help 命令,你会发现一些有用的信息,其中就有告诉你 Vapor 工具箱能做哪些事情。

Vapor 工具箱是一个命令行工具,可以帮助开发 Vapor 应用。它可以从指定模板创建应用、可以调用 Swift 工具链来构建和运行项目、可以生成项目的对应 Xcode 项目,除此之外,还可以把应用部署到云上环境。

$ vapor --help
Usage: vapor <command>

Vapor Toolbox (Server-side Swift web framework)

Commands:
        build Builds an app in the console.
        clean Cleans temporary files.
       heroku Commands for working with Heroku.
          new Generates a new app.
          run Runs an app from the console.
              Equivalent to `swift run Run`.
              The --enable-test-discovery flag is automatically set if needed.
    supervisor Commands for working with supervisord.
        xcode Opens an app in Xcode.

Use `vapor <command> [--help,-h]` for more information on a command.

常用命令说明

这些命令会在之后的实践中用到,慢慢熟悉并使用它们。

创建并运行一个项目示例

下面使用 vapor new 来创建一个项目并运行,作为示例。

  1. 创建项目示例:
    $ mkdir ~/vapor
    $ cd ~/vapor
    $ vapor new HelloVapor

    创建时会提示我们是否需要使用 FluentLeaf,输入 n,目前我们不需要使用。Fluent 是与数据库交互的 ORM 框架,Leaf 是 web 开发时使用的模板语言框架。

  2. 运行项目示例:
    $ cd HelloVapor
    $ vapor run
    Updating https://github.com/vapor/vapor.git
    Fetching https://github.com/vapor/multipart-kit.git
    Fetching https://github.com/apple/swift-nio.git
    ......
    [1462/1462] Linking Run
    [ NOTICE ] Server starting on http://127.0.0.1:8080
第一次运行会比较耗时,因为它要从 GitHub 上拉取一些依赖的代码仓库到本地后再进行编译。GitHub 在中国有可能会被 DNS 污染,访问不太稳定。国内的朋友需要使用一些 GitHub 访问加速方案,如果有合法代理可以访问国际互联网的方式是最好的。

目前服务已经运行在 http://127.0.0.1:8080,可以通过浏览器进行访问。

端口占用查询

有时在运行应用时会发现想要监听的端口已经被其它的应用程序绑定了,此时可以使用命令查看一下到底是谁在使用。在 macOS 上,终端键入命令 lsof -i tcp:8080 可以查看指定端口当前被哪些应用使用。然后使用 pkill <APP_NAME> 来关闭这些占用端口的应用。如果占用端口的应用很重要,那么你就要考虑换一个端口来监听运行你的 Vapor 项目了。

查看 Vapor API 项目的所有路由信息

可以通过下面命令,查看这个 api 项目提供的所有可用路由信息:

$  vapor run routes
+-----+--------+
| GET | /      |
+-----+--------+
| GET | /hello |
+-----+--------+

项目模板默认提供两个 route://hello,用浏览器访问一下试试:

切换服务运行的端口和主机地址

使用 vapor run 命令运行项目,默认是在监听 127.0.0.1:8080,所以你只能从本机访问。如果要指定端口和允许任意 IP 地址访问 API,可以使用下面的命令运行:

vapor run serve --hostname 0.0.0.0 --port 80

运行起来后,我们就可以在内网中的任何设备上访问到刚刚开发的 API 了,例如可以使用手机浏览器访问电脑的内网 IP,验证 API 服务正常工作。


本系列其他文章