编者语:今天是大年初一,先和你们简单说一句猴年快乐!html
你认识Swift或者是在客户端,由于它是苹果用来开发客户端的新一代语言。在Swift开源后苹果让它不只在MacOS/iOS上跑,也运行到了Linux ,而第三方公司RemObject把Swift带到了Android,也带到了Windows(Windows Form/WPF/Universal Windows App) 。能够说Swift已是一个完整的跨平台语言了。但有人会说Swift缺乏了作服务器端的能力,如网站,接口等,如今Perfect就是一个很不错的项目能完成网站开发/数据接口等服务端的工做。今天开始我会介绍给你们。mysql
Perfect让Swift在服务器端跑起来了,它是开源的。你能够经过官网http://www.perfect.org (这个须要佛跳墙)了解它,也能够从它的Github上下载最新的源码 https://github.com/PerfectlySoft/Perfect/。如下是在Perfect网站上一个重要的介绍, 这真的是一个很cool 的项目。git
Perfect主要提供了三块主要的功能一个是从服务器端到客户端都适用的PerfectLib(包括了一些简单的操做如JSON或者是WebHandler的相关操做),其次是一个FastCGI和HTTP服务的容器去支持Perfect在服务端的运行,还有一个Connector这个主要用来和一些服务器基础服务打交道(如和Apache接入,还有数据库连接等现阶段支持MySQL,MongoDB, PostgerSQL还有SQLite).github
Perfect在服务器端是如何运做的?咱们先来看看。sql
从上面的图能够看出,这和咱们的rails思想差很少,若是你熟悉.NET MVC/Java Spark !/Ruby on Rails是,那再迁移过来是很快的事情。咱们来看看如何来建立一个Perfect项目并建立一个简单的WebAPI。数据库
1. 先把Perfect从Github拉下来 Git clone https://github.com/PerfectlySoft/Perfect.gitjson
2. 下载完后,第一件事情不是编码,是把Perfect模版添加到Xcode内。模版放在Extras目录下(如图)swift
而后只须要把Extras/Xcode Templates/Perfect 拷贝到/Users/用户名/Library/Developer/Xcode/Templates/Project Templates/ 下便可。添加完后你打开Xcode就能够看到Perfect模版了。浏览器
3. 把上面开发环境配置好如今就能够开始建立Perfect项目了,咱们先来建立一个WorkSpace(若是你不太懂看下图),叫PerfectSample服务器
4. 建立成功后,分别先把PerfectLib,PerfectServer,MySQL引入WorkSpace中,因为用到不一样的基础服务因此必须引入。PerfectLib你能够理解成Perfect框架,而PerfectServer是启动支持Perfect的相似IIS/Apache的容器,MySQL是须要介入MySQL Connector
5. 利用Perfect模版建立PerfectWeb项目,如图我建立了一个HelloWorld的项目。如图这个和咱们建立Cocoa Framework一致的。固然你能够不须要这个模版,直接从Cocoa Framework模版上建立。
项目里面就包含了一个Handler和一个对应的mustache模版。但这个时候仍是不能运行的,你必须把PerfectLib/MySQL Connector引用进来,以下图,这里须要注意PerfectLib是引用PerfectLibOSX版本。
完成添加这两个库后还须要配置Buiding Scheme ,如图,由于你启动须要PerfectServer因此你须要把executable改为PerfectServer.app ,并把Shared项目钩上。
6. 对PerfectHandler.swift进行修改
[plain] view plain copy
7. 运行,当运行时会启动 PerfectServer.app,而后在浏览器输入0.0.0.0:8080就能够看到JSON结果了。
结果:
好!一个简单的Web API就完成了,固然这是平平无奇,可是用Swift完成了服务器端的开发是感受不错的事情。Perfect是一个开始,完成度也有待提升,可是我相信很快会有质的飞跃,如即将支持的ORM等。文档不足也是一个很致命的缘由,我相信也会很快改善。
介绍一个不错的blog(须要佛跳墙) http://code-me-dirty.blogspot.co.uk/2016/02/creating-perfect-swift-server.html ,固然你能够看个人连载。
今天先说到这里,接下来我会让Perfect在Linux上飞,下篇见