Framework
RoutingKit
Parameters
path componentsE.G.
":id",":postId"
Installation
Manually add the following to your Package.swift file:
dependencies: [
.package(url: "https://github.com/vapor/routing-kit.git", from: "5.0.0")
],
targets: [
.target(
name: "MyTarget",
dependencies: [
.product(name: "RoutingKit", package: "routing-kit"),
]
),
]
Usage
To use RoutingKit, first import the module:
import RoutingKit
Then, create a router builder instance:
let builder = TrieRouterBuilder(String.self)
// or
let builder = TrieRouterBuilder<Int>()
Next, register routes with associated handlers:
builder.register("handler1", at: ["users", ":id"])
builder.register("handler2", at: ["posts", ":postId", "comments"])
Finally, build the router and use it to route incoming paths:
let router = builder.build()
var params = Parameters()
if let handler = router.route(["users", "123"], parameters: ¶ms) {
print("Routed to handler: \(handler) with params: \(params)")
}
Note
To preserve both speed and safety, once you create a router using the build() method, it becomes immutable. Any further modifications require creating a new builder instance.
There’s different types of path components you can use when registering routes:
Constant path components: e.g.
"users","posts"Wildcard path components: e.g.
"*"Partial parameter path components: e.g.
":{file-name}.{ext}"
All of these can be used simply by passing the appropriate strings to the register method.
Custom Router
You can also create your own custom router by conforming to the Router protocol. This allows you to define your own routing logic rather than using the built-in trie-based router.
Topics
Classes
TrieRouterGenericTrieRouterbuilt using the “trie” tree algorithm.
Protocols
RouterAn object that can quickly look up previously registered routes.RouterBuilderA protocol for building routers by registering routes with their associated outputs.
Structures
ParametersHolds dynamic path components that were discovered while routing.TrieRouterBuilderTrieRouterBuilderprovides an efficient way to build routing tables by accumulating route registrations and then constructing an immutable, thread-safeTrieRouterfor fast lookups.
Enumerations
PathComponentA single path component of aRoute. An array of these components describes a route’s path, including which parts are constant and which parts are dynamic.