如果你想用swift 语言构建后台服务端,那么恭喜你,目前流行的swift server 有两款,一款是基于swift语言的Swift的Perfect服务端,还有一款是vapor服务端,两者相比vapor服务端更容易上手,搭配部署环境更容易,后期服务器更新代码也是一键傻瓜式操作。Perfect服务端环境搭配和后期代码更新相对复杂,反正作者尝试过两次,都失败了,按照官方教程中间会出现莫名的报错,而vapor一次成功。
如果你是一名iOS开发者,在准备搭建环境之前,建议你先看看vapor官方的环境搭建和安装方法 vapor官方安装文档 中间会下载一些辅助工具,如果你不能翻墙,那么很可能无法完成安装
先说明一下,请你不要被我上面的介绍搞蒙圈了,说白了,这个swift-vapor服务器就是一个swift工程,可以在工程里面利用swift语言编写api接口,操作数据库等等。
学会这个,你可以用这个vapor服务端做哪些事情?
1.iOS、Android 后台服务器开发,前后端自己可以单抗了~
2.如果你会html开发,那么控制台,网页你也可以单抗了~
3.小程序后台?没问题!win应用后台,mac应用后台都能胜任
4.主流服务器能做的事情vapor都能做
为了提起你的兴趣,在安装之前先介绍下我利用swift-vapor服务器开发的成果
1.iOS app 一枚(应用名:私人社区 App Store链接)
2.iOS app (私人社区)配套官网一个:私人社区官网一私人社区官网二
3.小程序一枚(正在开发中...)
开始安装:
1.安装安装Vapor和toolbox
安装指令:
curl -sL check.vapor.sh| bash
curl -sL toolbox.vapor.sh| bash
备注:我是利用mac 自带的终端执行的命令
2.新建工程
安装指令:
vapor --help
vapor new yourVapor
备注 yourVapor 是指你server工程的名称可以随便取,成功之后如下图
3.打开项目
vapor xcode-y
打开项目之后,找到sources目录下的app/main.swift文件,拷贝下面的代码cmd+a,cmd+v
import Vapor
let drop = Droplet()
drop.get { req in
return try drop.view.make("welcome", [
"message": drop.localization[req.lang, "welcome", "title"]
])
}
drop.get("json") { request in
return try JSON(node: [
"number": 123,
"string": "test",
"array": try JSON(node: [
0, 1, 2, 3
]),
"dict": try JSON(node: [
"name": "Vapor",
"lang": "Swift"
])
])
}
drop.resource("posts", PostController())
drop.run()
然后运行选择app运行在mac上
在浏览器输入并访问 http://localhost:8080 可以看到一个网页
在浏览器输入 http://localhost:8080/json可以看到一段json
4.配置数据库
(备注:下面操作可能需要翻墙)
如果前三步你没有出现什么报错和异常,你应该可以跟着我继续了,如果出现问题可以在下面留言。
使用Postgres作为数据库,
安装部署Homebrew,然后利用Homebrew安装Postgres数据库,
brew install postgres
然后在heroku上面部署自己的服务器:https://dashboard.heroku.com/
首先得先去官网注册个账号,然后
安装Heroku toolbeit 命令号工具,安装好之后测试下,没啥问题就登陆了,后面账号密码,就是你在heroku官网注册的
heroku --version
heroku login
5.部署服务器
先cd到工程文件夹
git init
git add .
git commit -am "xxx"
提交成功之后,开始设置服务器
vapor heroku init
接下来会有几个问答需要你确认,配置服务器用的(不要怕输错,根据自己的需求,后面可以去heroku官网找到自己的app,在设置里面修改)
1.Would you like to provide a custom Heroku app name?
你需要自定义你的Heroku app名字吗,当然需要,输入Y
2.Custom app name?
'你的APP名字,例testqq'
3.Would you like to provide a custom Heroku buildpack?
是否需要编译空间 输入N,
4.Are you using a custom Executable name?
N
5.Would you like to push to Heroku now?
Y
稍等会,推送完成之后就可以访问你的远程heroku服务器了
https://testqq.herokuapp.com/ (备注:这里的testqq就是刚才设置的app名字)
最后一步:给你的远程服务器配置数据库
heroku addons:create heroku-postgresql:hobby-dev
你可以访问你的远程服务器资源,如:获取json:https://testqq.herokuapp.com/json
备注:每次你修改完服务器代码之后,你只需要:
git commit -am "加了新东西"
git push heroku master
Ok,到此为止,如果你以上过程中没有出现什么问题,那么你基本上已经学会如何利用Swift写服务器了,在此之前,你可以先下载我的服务端和客户端代码跑起来预习了解自己尝试下,服务器工程需要cd到目录,用vapor xcode -y 打开
vapor xcode -y
服务器本地需要安装
pgAdmin 4,最下面附件有,方便调试管理。
私人社区iOS app服务器接口截图