美文网首页
Vapor3写后端-初体验

Vapor3写后端-初体验

作者: 范范饭特稀 | 来源:发表于2018-10-17 16:32 被阅读120次

之前的文章

  1. 使用Swift4+Vapor写后端-初体验
  2. 使用Swift4+Vapor写后端-部署heroku服务器
  3. 使用Swift4+Vapor写后端-Droplet和Route
  4. 使用Swift4+Vapor写后端-示例&套路
  5. 使用Swift4+Vapor写后端-总结

以上使用的是vapor2

前言

由于 Apple 发布了事件驱动的非阻塞网络框架 SwiftNIO 的缘故,Vapor 3 以迅雷不及掩耳盗铃当之势将其接入,导致 Vapor 2 和 Vapor 3 的语法差异很大。

创建项目

我们使用vapor new helloVapor创建一个名为helloVapor的空项目,vapor默认创建的模板项目中已经为我们写了一些初始化代码。项目结构如下:

.
├── Public
├── Sources
│   ├── App
│   │   ├── Controllers
│   │   ├── Models
│   │   ├── boot.swift
│   │   ├── configure.swift
│   │   └── routes.swift
│   └── Run
│       └── main.swift
├── Tests
│   └── AppTests
└── Package.swift

App

这是应用程序中最重要的文件夹,它是所有应用程序逻辑的所在。

Controllers

控制器是将应用逻辑分组在一起的好方式。大多数控制器具有许多功能,接受请求并返回某种响应。

Models

模型文件夹用来存放模型文件。

boot.swift

此文件包含一个函数,该函数将在应用程序启动后调用。我们可以在访问这里的应用程序,也可以使用该应用程序来创建可能需要的任何服务。

configure.swift

此文件包含一个函数,该函数接收应用程序的配置、环境和服务作为输入参数。在这里来改变应用的配置或注册服务。

routes.swift

在这里创建路由。

项目初体验

与vapor2中的Droplet不同,vapor3使用Application作为一个服务容器,它负责注册路由,启动服务器,中间件 (middleware)等等。如示例代码app.swift中:

public func app(_ env: Environment) throws -> Application {
    var config = Config.default()
    var env = env
    var services = Services.default()
    try configure(&config, &env, &services)
    let app = try Application(config: config, environment: env, services: services)
    try boot(app)
    return app
}

main.swift中调用了该方法初始化了一个Application,然后调用其run方法启动服务。
其中try configure(&config, &env, &services)这里调用了configure.swift文件中的public func configure(_ config: inout Config, _ env: inout Environment, _ services: inout Services) throws方法,用来注册服务、路由、中间层,并配置数据库和模型。具体内容见项目的示例代码,这里不再赘述。

运行

使用vapor run或者vapor xcode创建xcode项目并选择runtarget来运行项目。
控制台打印 Server starting on http://localhost:8080 项目运行成功,然后我们调用一下默认的接口,在浏览器中输入http://localhost:8080/hello,会看到返回的字符串:Hello, world!
接下来可以尝试自己写一些简单的get/post请求。

参考

vpaor文档

相关文章

  • Vapor3写后端-初体验

    之前的文章 使用Swift4+Vapor写后端-初体验 使用Swift4+Vapor写后端-部署heroku服务器...

  • 使用Swift4+Vapor写后端-总结

    之前的文章 使用Swift4+Vapor写后端-初体验 使用Swift4+Vapor写后端-部署heroku服务器...

  • Vapor3初探——使用Fluent查询数据

    Vapor升级到Vapor3的时间恰巧赶上WWDC,本来想从美国回来就开始写一些关于Vapor3的文章,但是WWD...

  • Vapor-Content

    在Vapor3,所有内容类型(JSON, protobuf, URLEncodedForm, Multipart,...

  • 使用Swift4+Vapor写后端-初体验

    简介 Vapor 是一个基于纯 Swift 构建出的 Web 开发框架,目前可以运行在 macOS 和 Ubunt...

  • Vue实现前后端分离项目的初体验

    Vue实现前后端分离项目的初体验 经过之前学习的Vue的知识: vue基本指令 vue组件 vue-resourc...

  • Vapor学习之Content

    Content Vapor3 中所有的 content 类型(JSON、protobuf、FormURLEncod...

  • Bmob后端云初体验

    声明:作者原创,转载注明出处。欢迎指正,不接受批评。作者:帅气陈吃苹果 一、Baas简介 Baas,Backend...

  • lua写后端

    公司考虑,想把一些游戏的后端的用lua写,现在公司新的游戏基本上是前后端都使用lua,用lua写有什么好处呢?...

  • vue前后端分离初体验(-)

    数据库老师说bookstrap太老,太丑了。建议我们用心的框架,后端SSM的增删改查已经做完了,偶然看到一个git...

网友评论

      本文标题:Vapor3写后端-初体验

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