Perfect 好像这个是最早面世的服务端框架 Perfect 中文文档
Vapor Vapor 文档
IBM开源 Kitura
Zewo
就拿
Vapor
来上手吧
- 首先使用
xcode
创建一个命令行工程 - 在工程目录下 创建
Sources
Config
文件夹和Package.swift
并把工程默认的main.swift
移到Sources
- 打开
Package.swift
写下如下代码
import PackageDescription
let package = Package(
name: "demo",
dependencies: [
.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 1)
]
)
- 打开
terminal
进入工程目录,也就是和Package.swift
同级目录,执行
swift build
- 首先会去下载相关依赖的源文件进行编译





Vapor
至此已经安装好了,可以开始编写代码,至于用啥IDE呢 这个就看个人喜好了 你可以用Atom
SublimeText
当然也可以用Vim
等等文本编辑器,我这里就采用Xcode
,不过还需要设置一下,不然会报错,也没用代码提示功能
- 使用Xcode打开工程,如图设置

- 开始写代码,打开
main.swift
//
// main.swift
// demo
//
// Created by king on 16/10/4.
// Copyright © 2016年 king. All rights reserved.
//
import Foundation
// 导入Vapor
import Vapor
// 创建一个 app
let app = Droplet()
// 创建一个API,path为hello
app.get("hello") { request in
// 从请求中提取参数
guard let name = request.data["name"]?.string else {
// 如果提取不到,则返回一个失败的请求
throw Abort.badRequest
}
// 提取成功,返回json数据
// JSON 是一个结构体
// Node 是一个枚举
// JSON(Node.object(["result" : Node.string("Hello, \(name)!")])) 返回一个object
return JSON(Node.object(["result" : Node.string("Hello, \(name)!")]))
}
// 运行app
app.run()
- 打开
terminal
,进入工程根目录,运行如下命令
.build/debug/demo
- 启动成功,如图

- 打开浏览器,输入
0.0.0.0:8080/hello?name=king
或者127.0.0.1:8080/hello?name=king

- 当没有输入name参数时,就是一个失败的页面

默认的端口是8080
如何改变它呢
- 进入开始创建的
Config
文件夹创建一个severs.json
{
"http": {
"host": "0.0.0.0", // 主机地址
"port": 80 // 端口 设置为80 则不需要在API 后面跟上端口
}
}
-
terminal
执行
sudo .build/debug/demo
- 然后就不再需要跟上端口了

- 先简单的玩玩,在慢慢去深入,该睡觉了
网友评论