美文网首页
vapor学习教程-Collection

vapor学习教程-Collection

作者: 晓蜻蜓 | 来源:发表于2017-04-10 14:03 被阅读0次

Route Collections

路由集合允许将多个路由和路由组组织在不同的文件或模块中。

Example


以下是v1API部分的路由集合示例:

import Vapor
import HTTP
import Routing

class V1Collection: RouteCollection {
    typealias Wrapped = HTTP.Responder
    func build<B: RouteBuilder where B.Value == Wrapped>(_ builder: B) {
        let v1 = builder.grouped("v1")
        let users = v1.grouped("users")
        let articles = v1.grouped("articles")

        users.get { request in
            return "Requested all users."
        }

        articles.get(Article.self) { request, article in
            return "Requested \(article.name)"
        }
    }
}

这个类可以放在任何文件中,可以将它添加到vapor或甚至添加到另一个路由组中。

let v1 = V1Collection()
drop.collection(v1)

然后Dropletbuild(_:)方法传递给路由集合,并添加各种路由。

Breakdown


我们逐一分解路由集合,来了解它们到底生发了什么。

typealias Wrapped = HTTP.Responder

这限制了路由集合只添加HTTP响应。虽然底层路由器能够路由任何类型,但Vapor只针对HTTP响应者。如果在vapor要使用这个路由集合,首先它的包裹类型需要匹配。

func build<B: RouteBuilder where B.Value == Wrapped>(_ builder: B) {

这个方法接收一个路由构造器并通过接收Wrapped来验证路由构造器,如上一行所定义,HTTP.Responders。vaporDropletVapor创建的任何路由组都是只接受HTTP响应的RouteBuilders。

let v1 = builder.grouped("v1")

从上面代码看出,照常可以通过builder来创建路由。builder:B同样像Droplet或路由组一样工作。任何在Droplet和路由组上工作的方法都可以在这个builder上工作。

Empty Initializable


如果有空的init方法,可以将EmptyInitializable添加到路由集合。这允许通过其类型名称添加路线集合。

class V1Collection: RouteCollection, EmptyInitializable {
    init() { }
    ...

现在我们可以添加到集合而不初始化它。

drop.collection(V1Collection.self)

继续学习vapor学习教程-目录

相关文章

  • vapor学习教程-Collection

    Route Collections 路由集合允许将多个路由和路由组组织在不同的文件或模块中。 Example 以下...

  • Vapor学习

    通过将Vapor官方文档进行梳理,了解Vapor所涉及到的知识点 Vapor英文教程Vapor中文教程官方Github

  • Vapor文档学习十八:ROUTING - Collection

    路由集合可以将多个路由和路由组组织到不同的文件或者模块中。 Example 这是一个API中v1部分的路由集合例子...

  • vapor学习教程-Model

    Model Model是任何应用程序模型的基本协议,特别是要持久化的模型。 Model仅适用于Vapor,在Flu...

  • vapor学习教程-Query

    Query Query类对Fluent的所有交互都显得很强大。无论是使用.find()还是将数据保存到数据库中都调...

  • vapor学习教程-Commands

    Commands 在vapor自定义控制台命令是一件简单的事 Example 要创建自定义控制台命令,我们必须先创...

  • vapor学习教程-目录

    vapor官方文档翻译,例子比较旧,但不影响学习 前面的章节已有人翻译前部分章节内容 第二章 GUIDE 2.10...

  • vapor学习教程-Group

    Route Groups 将路由分组可以轻松地将多个路由添加公用的前缀,中间件或主机。路由组有两种不同的形式:组和...

  • vapor学习教程-Driver

    Driver Fluent 引擎下的动力来源于驱动程序,Fluent默认配有内存驱动并且有许多供应商提供了像MyS...

  • dyld: libssl.1.0.0.dylib not loa

    按照官网教程 ,咔咔两句命令下去之后 brew tap vapor/tap brew install vapor/...

网友评论

      本文标题:vapor学习教程-Collection

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