用Swift 写服务端

作者: 若非长得丑怎会做逗比 | 来源:发表于2016-10-05 01:20 被阅读2927次

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
  • 首先会去下载相关依赖的源文件进行编译
Snip20161005_5.png Snip20161005_6.png Snip20161004_2.png Snip20161004_3.png Snip20161005_7.png

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

  • 使用Xcode打开工程,如图设置
Snip20161005_8.png
  • 开始写代码,打开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
  • 启动成功,如图
Snip20161005_10.png
  • 打开浏览器,输入0.0.0.0:8080/hello?name=king 或者 127.0.0.1:8080/hello?name=king
Snip20161005_9.png
  • 当没有输入name参数时,就是一个失败的页面
Snip20161005_11.png

默认的端口是8080 如何改变它呢

  • 进入开始创建的Config文件夹创建一个severs.json
{
  "http": {
    "host": "0.0.0.0", // 主机地址
    "port": 80 // 端口 设置为80 则不需要在API 后面跟上端口
  }
}
  • terminal执行
sudo .build/debug/demo 
  • 然后就不再需要跟上端口了
Snip20161005_12.png
  • 先简单的玩玩,在慢慢去深入,该睡觉了

推荐:不服跑个分 - 顶级 Swift 服务端框架对决 Node.js

相关文章

网友评论

    本文标题:用Swift 写服务端

    本文链接:https://www.haomeiwen.com/subject/qdesyttx.html