This package enforces clients to send a specific header in all requests:
N-Meta: [PLATFORM];[ENVIRONMENT];[APP_VERSION];[DEVICE_OS];[DEVICE]
If you're running an older version of Vapor then have a look here:
This header can look like this android;production;1.2.3;4.4;Samsung S7
- platform
- environment
- app version
- device os
- device
For web platform only platform and environment is required, since the rest can be found in User-Agent
.
Why not just use User-Agent
?
User-Agent
is missing some of these detailsUser-Agent
can be hard to extend/override- Default
User-Agent
in iOS & Android can be their client (OkHttp, Alamofire etc).
Update your Package.swift
file.
...
dependencies: [
...
.package(url: "https://github.com/nodes-vapor/n-meta.git", from: "4.0.0")
],
targets: [
.target(
name: "App",
dependencies: [
...
.product(name: "NMeta", package: "n-meta"),
]
)
...
Configure NMeta as per your needs, for example:
app.nMeta = .init(exceptPath: ["/admin"])
Next, add the middleware directly to your routes (e.g. in routes.swift
):
app.grouped(NMetaMiddleware()).get("hello") { req in
"Hello, world!"
}
or add the middleware globally (e.g. in configure.swift
) which will add it to all routes:
app.middlewares.use(NMetaMiddleware())
This package is developed and maintained by the Vapor team at Nodes.
This package is open-sourced software licensed under the MIT license